cv2.findContours()的使用
时间: 2023-08-19 13:15:34 浏览: 89
cv2.findContours()是OpenCV中用于检测图像轮廓的函数。它接受的参数包括图像、轮廓检测模式和轮廓近似方法。首先,需要将图像转换为灰度图像,然后再将其转换为二值图像。接下来,使用cv2.findContours()函数来检测轮廓。最后,使用cv2.drawContours()函数将检测到的轮廓绘制在图像上。
具体使用方法如下:
1. 导入cv2库:import cv2
2. 读取图像并转换为灰度图像:img = cv2.imread('D:\\test\\contour.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
3. 将灰度图像转换为二值图像:ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
4. 检测轮廓:contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
5. 绘制轮廓:cv2.drawContours(img, contours, -1, (0, 0, 255), 3)
6. 显示图像:cv2.imshow("img", img)
7. 等待按键:cv2.waitKey(0)
需要注意的是,cv2.findContours()函数返回两个值,分别是轮廓和层级信息。轮廓是一个包含所有检测到的轮廓的列表,层级信息描述了轮廓之间的关系。
参考资料:
[1] 代码示例来源:https://blog.csdn.net/qq_37541097/article/details/105084051
[2] cv2.findContours()函数说明:https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#cv2.findContours
[3] cv2.findContours()函数返回值说明:https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#cv2.findContours
阅读全文