cv2.findContours的用法
时间: 2023-07-22 11:59:45 浏览: 68
Python通过OpenCV的findContours获取轮廓并切割实例
5星 · 资源好评率100%
cv2.findContours是OpenCV库中用于查找图像中轮廓的函数。它可以从二值化图像或灰度图像中找到图像中的所有轮廓。
该函数的语法如下:
contours, hierarchy = cv2.findContours(image, mode, method)
其中,image是输入的二值化图像或灰度图像,mode是轮廓检测模式,method是轮廓逼近方法。函数的返回值包括contours和hierarchy,其中contours是找到的轮廓列表,hierarchy是轮廓的层级信息。
具体使用方法如下:
1. 首先,将图像转换为二值化图像或灰度图像。
2. 调用cv2.findContours函数,传入图像、轮廓检测模式和轮廓逼近方法。
3. 获取返回的轮廓列表contours和层级信息hierarchy。
例如,假设我们有一个二值化图像image,我们可以使用findContours函数找到图像中的轮廓:
```python
import cv2
# 假设image是一个二值化图像
ret, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(binary_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 打印结果
print("找到的轮廓数量:{}".format(len(contours)))
```
上述代码中,我们假设image是一个二值化图像,首先使用cv2.threshold函数将图像进行二值化处理。然后,调用cv2.findContours函数找到图像中的轮廓。最后,我们打印出找到的轮廓数量。
请注意,返回的轮廓列表contours中的每个轮廓都是一个包含一系列点的numpy数组。可以使用相关的函数和方法来处理和绘制这些轮廓。
阅读全文