python中cv2.findContours
时间: 2023-10-14 20:22:38 浏览: 67
python cv2截取不规则区域图片实例
cv2.findContours是OpenCV中的一个函数,用于查找二值图像中的轮廓。该函数可以接收三个参数:二值图像、轮廓查找模式和轮廓近似方法。函数返回两个值:轮廓和层次结构。
在使用cv2.findContours函数时,需要注意以下几点:
- 输入图像必须是二值图像,即像素值只能是0或255。
- 轮廓查找模式可以是RETR_EXTERNAL(只检测外部轮廓)、RETR_LIST(检测所有轮廓,但不建立轮廓间的父子关系)等。
- 轮廓近似方法可以是CHAIN_APPROX_NONE(存储所有的轮廓点)、CHAIN_APPROX_SIMPLE(仅存储轮廓的端点)等。
下面是一个简单的示例,演示如何使用cv2.findContours函数查找二值图像中的轮廓:
```python
import cv2
img = cv2.imread('binary_image.jpg', 0)
ret, thresh = cv2.threshold(img, 127, 255, 0)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在该示例中,我们首先读取一张二值图像,然后使用cv2.threshold函数将其二值化。接着使用cv2.findContours函数查找轮廓,最后使用cv2.drawContours函数绘制轮廓。
阅读全文