Fu Xianjun. All Rights Reserved
边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到的边缘并不是个整体。 图像轮廓是指将边缘连接起来形成的一个整体,用于后续的计算。OpenCV提供了查找图像轮廓的函数cv2.findContours(),该函数能够查找图像内的轮廓信息,而函数cv2.drawContours(能够将轮廓绘制出来。图像轮廓是图像中非常重要的一个特征信息,通过对图像轮廓的操作,我们能够获取目标图像的大小、位置、方向等信息
目录
一. 轮廓查找与绘制
二. 计算轮廓的面积及长度
三. 使用Hu特征进行形状匹配
四. 轮廓的几何形状拟合
重点:轮廓查找与绘制、计算轮廓的面积及长度
难点:形状匹配、轮廓的几何特征拟合
1.轮廓查找与绘制
函数cv2.findContours()的语法格式为:image, contours, hierarchy = cv2.findContours( image, mode, method)
式中的返回值为:
*image:与函数参数中的原始图像image一致
*contours:返回的轮廓
*hierarchy: 图像的拓扑信息(轮廓层次)
式中的参数为
*image:原始图像,8位单通道图像,所有非零值被处理为1,所有零值保持不变。也就是说灰度图像会被自动处理为二值图像。在实际操作时,可以根据需要,预先使用阈值处理等函数将待查找轮廓的图像处理为二值图像
*mode:轮廓检索模式
*method:轮廓的近似方法
轮廓是一系列相连的点组成的曲线,代表了物体的基本外形,相对于边缘,轮廓是连续的,边缘并不全部连续