cv2.findcontours代码实现
时间: 2024-05-05 18:13:53 浏览: 161
opencv_findcontours函数测试
cv2.findContours是OpenCV库中用于查找图像中轮廓的函数。它的基本语法如下:
contours, hierarchy = cv2.findContours(image, mode, method)
其中,参数说明如下:
- image:输入的二值图像,通常为灰度图像或二值化后的图像。
- mode:轮廓检索模式,指定轮廓的层级关系。常用的模式有cv2.RETR_EXTERNAL(只检测外部轮廓)、cv2.RETR_LIST(检测所有轮廓,不建立层级关系)等。
- method:轮廓逼近方法,指定轮廓的近似方式。常用的方法有cv2.CHAIN_APPROX_SIMPLE(压缩水平、垂直和对角线段,只保留端点)、cv2.CHAIN_APPROX_NONE(保留所有的轮廓点)等。
函数返回两个值:
- contours:检测到的轮廓,以列表形式存储,每个轮廓是一个点集。
- hierarchy:轮廓的层级关系,以列表形式存储。
以下是一个示例代码:
```python
import cv2
# 读取图像并转为灰度图像
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(image, contours, -1, (0, 0, 255), 2)
# 显示结果
cv2.imshow('Contours', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文