OpenCV-Python 轮廓检测
轮廓,可以理解为图像中具有相同颜色或密度的位于边界的连续点的集合,轮廓是形状分析和对象识别的有利工具。
在OpenCV-Python中,常用findContours函数来进行轮廓检测,后使用drawContours函数在图像中显示出检测到的轮廓,每个独立的轮廓是以Numpy array的点坐标的形式呈现,两个函数通常互相结合使用。
轮廓检测函数findContours
从黑色背景中获取白色区域的轮廓
- 函数原型:
contours, hierarchy=cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]])
- 参数:
-
image: 源图像,必须为8位单通道图像,非零像素值均按像素值为1处理,0像素保留其像素值,该函数在提取轮廓过程中会改变图像,加载图像后会自动转化为二值图像。
-
mode: 轮廓检索模式
cv2.RETR_EXTERNAL:
只检测最外层轮廓,并置hierarchy[i][2] = hierarchy[i][3] = -1
cv2.RETR_LIST:
提取所有轮廓并记录在列表中,轮廓之间无等级关系
cv