matlab二值图像轮廓坐标_opencv之多轮廓提取

本文详细介绍了如何从MATLAB的二值图像中提取轮廓,并使用OpenCV进行多轮廓处理。通过findContours函数找到轮廓,同时讨论了函数参数如检索模式、近似方法和轮廓层次结构。此外,还展示了如何使用drawContours函数绘制轮廓,包括轮廓的线条类型、颜色和填充方式。内容涵盖了从最外层轮廓到所有轮廓的细节,以及如何选择特定轮廓进行绘制。
摘要由CSDN通过智能技术生成

【目标】提取图像中的目标轮廓

0a5d1f9fd2cb8be512551b40ced2ca73.png

【寻找轮廓】

findContours(InputOutputArray二值图, 点类型的contours, int mode, int method, Point offset=Point());

findContours(InputOutputArray二值图, 点类型的contours, OutputArray hierarchy, int mode, int method, Point offset=Point());

【注意】InputOutputArray类型的image都会被改变。此函数会改变输入的2值图像,所以一般先Mat src1=src.clone(),对src1处理。

contours——vector > contours; 轮廓边界点的集合。

hierarchy——vector hierarchy; 每个轮廓contours[i]对应4个hierarchy元素:hierarchy[i][0]~hierarchy[i][3],分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号。若没对应项,对应的hierarchy[i]值设为负。

mode——轮廓检索模式

轮廓检索模式

CV_RETR_EXTERNAL

只检测最外层轮廓,对所有轮廓设置hierarchy[i][2]=hierarchy[i][3]=-1

CV_RETR_LIST

检测所有轮廓,且放在list中,轮廓间无等级关系,即只有一层

CV_RETR_CCOMP

检测所有轮廓,且组织为双层结构,即两层的 hierarchy。顶层为连通域外围边界、次层为内层边界

CV_RETR_TREE

检测所有轮廓,并且重构嵌套轮廓的全部 hierarchy

method——轮廓的近似方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值