没有合适的资源?快使用搜索试试~ 我知道了~
首页Opencv实现轮廓提取功能
资源详情
资源评论
资源推荐

Opencv实现轮廓提取功能实现轮廓提取功能
主要为大家详细介绍了Opencv实现轮廓提取功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
轮廓:一个轮廓代表一系列的点(像素),这一系列的点构成一个有序的点集,所以可以把一个轮廓理解为一个有序的点集。
在opencv中,提供了一个函数返回一个有序的点集或者有序的点集的集合(指多个有序的点集),函数findContour是从二值
图像中来计算轮廓的,一般使用Canny()函数处理后的图像,因为这样的图像含有边缘像素。
寻找轮廓的API函数:
findContours(image,vector<vector<Point>> contours,vector<Vec4i>hierarchy,int mode,int method,Point offset = Point(0,0));
参数解释:参数解释:
(1)image:单通道图像矩阵,一般是经过canny处理后的二值图像;
(2)contours:vector<vector<Point>>类型,是一个向量,并且是一个双重向量,向量内每个元素保存了一组由连续的Point
点构成的点的集合的向量,每一组Point点集就是一个轮廓。有多少轮廓,向量contours就有多少元素;
(3)hierarchy:vector<Vec4i> 类型, 即容器内每一个元素都是一个包含了4个int型变量的向量,向量内每个元素保存了一
个包含4个int整型的数组。向量hiararchy内的元素和轮廓向量contours内的元素是一一对应的,向量的容量相同。hierarchy向
量内每一个元素的4个int型变量——hierarchy[i][0] ~hierarchy[i][3],分别表示第i个轮廓的后一个轮廓、前一个轮廓、父轮廓、
内嵌轮廓的索引编号。如果当前轮廓没有对应的后一个轮廓、前一个轮廓、父轮廓或内嵌轮廓的话,则hierarchy[i][0]
~hierarchy[i][3]的相应位被设置为默认值-1;
(4)mode:int类型的,定义轮廓的检索模式:
CV_RETR_EXTERNAL只检测最外围轮廓,包含在外围轮廓内的内围轮廓被忽略;
CV_RETR_LIST 检测所有的轮廓,包括内围、外围轮廓,但是检测到的轮廓不建立等级关系,彼此之间独立,没有等
级关系,这就意味着这个检索模式下不存在父轮廓或内嵌轮廓,所以hierarchy向量内所有元素的第3、第4个分量都会被
置为-1,具体下文会讲到;
CV_RETR_CCOMP 检测所有的轮廓,但所有轮廓只建立两个等级关系,外围为顶层,若外围内的内围轮廓还包含了其
他的轮廓信息,则内围内的所有轮廓均归属于顶层;
CV_RETR_TREE, 检测所有轮廓,所有轮廓建立一个等级树结构。外层轮廓包含内层轮廓,内层轮廓还可以继续包含
内嵌轮廓。
(5)method:int类型,定义轮廓的近似方法:
CV_CHAIN_APPROX_NONE 保存物体边界上所有连续的轮廓点到contours向量内;
CV_CHAIN_APPROX_SIMPLE 仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours向量内,拐点与拐点之
间直线段上的信息点不予保留;
CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl chain 近似算法;
(6) Point:偏移量,所有的轮廓信息相对于原始图像对应点的偏移量,相当于在每一个检测出的轮廓点上加上该偏移量,
一般不偏移取Point(0,0)。
画轮廓的画轮廓的API函数:函数:
drawContours(Outputimage,contours,hierarchy,int contourIdx,color,int thickness ,int lineType,hierarchy = noArray(),int
maxLevel = INT_MAX,Point offset = Point(0,0))
参数解释:
(1)outputimage: 将轮廓画在该图上;
(2)contours:前面寻找到的轮廓;
(3)contourIdx:是一个索引,代表绘制contours中的第几个轮廓;
(4) color:颜色;
(5)thickness: 线宽;
(6)lineType: 线型;
(7)hierarchy:可选层次信息结构,这里面是findContours所的到的基于Contours的层级信息;
(8)maxLevel: 绘制轮廓的最大等级。如果等级为0,绘制单独的轮廓。如果为1,绘制轮廓及在其后的相同的级别下轮
廓。如果等级为2,绘制所有同级轮廓及所有低一级轮廓,诸此种种。如果值为负数,函数不绘制同级轮廓,但会升序绘制直
到级别为abs(max_level)-1的子轮廓;
(9)offset:照给出的偏移量移动每一个轮廓点坐标.当轮廓是从某些感兴趣区域(ROI)中提取的然后需要在运算中考虑ROI
偏移量时,将会用到这个参数。
以上定义摘自该篇博客:OpenCV实现轮廓的发现。
#include<opencv2/opencv.hpp>


















weixin_38730821
- 粉丝: 7
- 资源: 931
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- 超声波雷达驱动(Elmos524.03&Elmos524.09)
- JavaFX教程-UI控件
- Python单选题库(2).docx
- 局域网网络安全设计.doc
- 合工大宣城校区编译原理实验报告(实验一、二、三)
- 学校语文教学心得体会模板.docx
- 棕色简约公司介绍企业文化宣传PPT模板
- Altera推荐Verilog HDL代码风格
- 【ASP.NET编程知识】ASP.NET MVC下基于异常处理的完整解决方案总结.docx
- 隧道工程施工现场经验总结
- NOIP高中信息技术竞赛资料-数据结构
- 嵌入式学习笔记,基于linux操作系统
- XX电力建设集团计划物资综合管理制度汇编.docx
- AP0404214基于组态技术的PLC实现交通灯控制系统-毕业设计.doc
- 电力设备行业:电动车全球化前瞻系列(一),大众宝马全力转身,欧洲电动化趋势不可逆转-0106-渤海证券-37页.pdf
- 巴克莱-美股-互联网与媒体行业-美国音乐产业趋势-328-22页.pdf
- python3基础教程(1).doc
- ppt3-python编程基础知识-基本数据类型(PPT71页)-说课稿.ppt
- 计算机网络安全基础5.ppt
- 新能源汽车行业投资策略:龙头引领,全球化来袭-0102-光大证券-40页.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0