python根据轮廓裁剪图片
时间: 2023-10-10 12:08:00 浏览: 50
可以使用 OpenCV 库来实现图像轮廓裁剪。
下面是一份示例代码,可以参考:
```python
import cv2
# 读取图片
img = cv2.imread('example.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 获取最大轮廓
max_contour = max(contours, key=cv2.contourArea)
# 创建掩膜
mask = np.zeros_like(img)
# 在掩膜上绘制轮廓
cv2.drawContours(mask, [max_contour], 0, (255,255,255), -1)
# 对原图像进行掩膜操作
result = cv2.bitwise_and(img, mask)
# 保存结果
cv2.imwrite('result.jpg', result)
```
在这个示例中,我们首先读取图片,并将其转换为灰度图像。然后,我们使用阈值处理将图像转换为黑白二值图像。接下来,我们使用 OpenCV 的 `findContours` 函数查找图像中的轮廓,并获取最大轮廓。然后,我们创建一个掩膜,并在掩膜上绘制最大轮廓。最后,我们使用 `bitwise_and` 函数将原图像与掩膜相乘,以裁剪出图像中的轮廓部分,并将结果保存到文件中。