python opencv根据四个点裁剪图片
时间: 2023-09-01 22:03:40 浏览: 468
使用Python和OpenCV根据四个点裁剪图片非常简单。下面是一个示例代码,以帮助您完成这个任务:
```python
import cv2
import numpy as np
# 读取原始图片
image = cv2.imread('image.jpg')
# 设置四个点的坐标
points = np.array([[50, 50], [300, 50], [300, 200], [50, 200]])
# 创建一个与原始图片大小相同的黑色背景图像
mask = np.zeros_like(image)
# 在黑色背景上绘制四边形
cv2.fillPoly(mask, [points], (255, 255, 255))
# 将原始图片与mask进行与运算,获取裁剪后的图片
result = cv2.bitwise_and(image, mask)
# 显示裁剪后的图片
cv2.imshow('Cropped Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
解释一下上面的代码过程:
首先,我们使用`cv2.imread()`函数读取原始图片。
然后,我们创建一个包含四个点坐标的NumPy数组。
接下来,我们通过调用`np.zeros_like()`函数来创建一个与原始图片大小相同的黑色背景图像。
然后,我们使用`cv2.fillPoly()`函数在黑色背景上绘制出我们定义的四边形。
最后,我们使用`cv2.bitwise_and()`函数将原始图片与mask进行与运算,得到裁剪后的图片。
最后,使用`cv2.imshow()`函数显示裁剪后的图片。
请确保将代码中的`image.jpg`替换为您要裁剪的实际图片路径。希望以上代码和说明对您有帮助!
阅读全文