cnts,_ = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)代码含义以及源代码讲解
时间: 2023-08-13 22:21:29 浏览: 50
这段代码的含义是使用OpenCV库中的函数`cv2.findContours()`寻找二值图像中的轮廓(contours)。
具体来说,`cv2.findContours()`函数有三个参数:输入图像、轮廓检索模式和轮廓近似方法。在这个例子中,我们使用二值图像`thresh`作为输入图像,`cv2.RETR_EXTERNAL`作为轮廓检索模式,表示只检索最外层的轮廓,不检索内部的轮廓;`cv2.CHAIN_APPROX_SIMPLE`作为轮廓近似方法,表示压缩水平、垂直和对角线方向的像素,并仅保留端点。
函数返回两个值:轮廓列表和层次结构(hierarchy)。在这个例子中,我们只关心轮廓列表,所以用一个下划线表示我们不需要层次结构。
以下是完整的示例代码:
```
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
cnts,_ = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
```
在这个例子中,我们首先读取一张图像`image.jpg`,然后将其转换为灰度图像并进行二值化处理。最后,使用`cv2.findContours()`函数查找轮廓,并将结果存储在`cnts`列表中。