findcontours()函数



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


函数原型:

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中的值就是图中白色的轮廓线(有单个像素点组成)。



未完待续》。。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值