1. 定义
轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值会影响最终轮廓发现的结果。
轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同 的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。
为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测,查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,
你应该将原始图像存储到其他变量中.在 OpenCV 中,查找轮廓就像在黑色背景中寻找白色物体。要找的物体应该是白色而背景应该是黑色。
2. 实现函数-cv2.findContours()、cv2.drawContours()
2.1 轮廓发现-cv2.findContours()
- 参数如下: cv2.findContours( (InputOutputArray image,OutputArrayOfArrays contours,OutputArray hierarchy,int mode,int method,Point offset = Point() )
- 参数说明:
- image:单通道图像矩阵,可以是灰度图,但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测算子处理过的二值图像;
2. contours:,是一个向量,,向量内每个元素保存了一组由连续的Point点构成的点的集合的向量,每一组Point点集就是一个轮廓。有多少轮廓