图像轮廓特征是图像中非常重要的一种特征。在进行视觉检测的时候,我们常常利用轮廓特征来达到我们要检测的目的。比如,检测一条直线的斜率,可以先提取直线的轮廓特征,然后采用最小包围矩形的方式得到角度,当然,直线的斜率也可以采用别的方式得到。在检测目标数量的时候,我们也可以利用数轮廓数量的方式得到,此外,还可以利用检测的轮廓对图像进行分割,利用检测到的轮廓进行轮廓匹配等操作。总之,轮廓特征的用处非常大,在机器视觉中,轮廓特征的应用也非常广泛。
在opencv里面,已经提供了查找轮廓特征的对应函数。一般在进行查找轮廓之前,需要将图像进行二值化处理,可以利用阈值处理函数,或者边界检测函数如canny算子。下面的例子说明了怎么进行轮廓查找以及计算轮廓的一些参数。这些函数在实际的机器视觉中的应用非常广泛。

图1是原始的示意图,从这张图上我们来看怎么查找轮廓以及怎么计算轮廓的一些参数,具体的示例代码如下:
int main(int argc, char** argv)
{
Mat src = imread("e:/1.jpg", 0);//读取图像
namedWindow("src", 0);
imshow("src", src);//显示