图像轮廓是一系列相连的点组成的曲线,代表物体的基本外形。轮廓与边缘的区别在于,轮廓是连续的,边缘并不全部连续。
轮廓发现的操作一般用于二值化图,所以通常会使用阈值分割或Canny边缘检测先得到二值图。
注意,轮廓发现是针对白色物体的,一定要保证物体是白色,而背景是黑色,不然很多人在寻找轮廓时会找到图片最外面的一个框。
轮廓层级
部分内容翻译自:https://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html
通常我们使用findContours()
函数寻找图像中的轮廓。某些情况下,某些形状在其他形状内,就像嵌套的数字一样。 在这种情况下,我们将外部形状称为父项
,将内部形状称为子项
。 这样,图像中的轮廓彼此之间就可以建立起关系。此关系的表示称为层次结构
。如下图所示: