Python 根据最大轮廓线裁剪图片
时间: 2023-11-19 22:12:31 浏览: 82
以下是Python根据最大轮廓线裁剪图片的示例代码:
```python
import cv2
# 读取图片
img = cv2.imread('image.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(img.shape[:2], dtype=np.uint8)
cv2.drawContours(mask, [max_contour], -1, 255, -1)
# 裁剪图片
result = cv2.bitwise_and(img, img, mask=mask)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码首先读取图片,然后将其转换为灰度图并进行阈值处理。接着,使用`cv2.findContours()`函数查找轮廓,并找到最大轮廓。然后,创建一个掩膜并将最大轮廓绘制在上面。最后,使用`cv2.bitwise_and()`函数裁剪图片,并将结果显示出来。
阅读全文