轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。
为了获得更高的准确性,请使用二进制图像。...因此,在找到轮廓之前,请应用阈值或canny边缘检测。
从OpenCV 3.2开始,findContours()不再修改源图像。
在OpenCV中,找到轮廓就像从黑色背景中找到白色物体。...要绘制所有轮廓,请传递-1),其余参数是颜色,厚度等等
在图像中绘制所有轮廓:
cv.drawContours(img, contours, -1, (0,255,0), 3)
绘制单个轮廓,如第四个轮廓...但是在大多数情况下,以下方法会很有用:
cnt = contours[4] cv.drawContours(img, [cnt], 0, (0,255,0), 3)
注意
最后两种方法相似,但是前进时,您会发现最后一种更有用...您是否需要线上的所有点来代表该线?不,我们只需要该线的两个端点即可。这就是cv.CHAIN_APPROX_SIMPLE所做的。它删除所有冗余点并压缩轮廓,从而节省内存。
下面的矩形图像演示了此技术。