findcontours()函数

来源:互联网 发布:苹果4怎么关闭网络 编辑:程序博客网 时间:2024/05/16 00:55



原图,以下均以此图为例。


函数原型:

CV_EXPORTS_W void findContours( InputOutputArray image, OutputArrayOfArrays contours,
                              OutputArray hierarchy, int mode,
                              int method, Point offset = Point());


1)要求输入是一个8位单通道的二值图像

二值图像与灰度图并不同,二值图像的像素值为1和0;而灰度图的像素值从0-255,二值图和灰度图的相似处都是单通道的图。


此图为典型的二值图像。对比原图可知,原图中颜色较深的地方,二值图中为白色,值为1,黑色值为0;


要注意一点,此函数在提取图像轮廓的同时会修改图像的内容,换句话说, InputOutputArray image是一个指针,


2)输出,因为函数是void类型,无返回值,而函数从 OutputArrayOfArrays contours输出,可知,输出参数也是一个指针,满足向外传输特性。

再来看看输出的结果是什么?

1)首先输出的结果是一个矩阵vector,一个vector类型的指针指向该矩阵,

2)矩阵中保存着从输入的图像中检测到的轮廓值,为向量的组合,通俗的讲就是图像中的轮廓点的位置(x,y),这些点共同组成了提取

到的轮廓。


contours中的值就是图中白色的轮廓线(有单个像素点组成)。



未完待续》。。。



原创粉丝点击