Opencv drawContours函数用于绘制和填充
2016-04-20 21:14
330 查看
在opencv中当我们使用一些基于连通域或者基于边沿信息的时候,往往会对contour进行处理除了利用findContours函数寻找连通域之外,也需要对连通域进行填充等操作这里介绍下drawContours函数,自己也是不断摸索和查阅了opencv相关手册
drawContours 在图像中绘制外部和内部的轮廓。
drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness=1, int lineType=8, InputArray hierarchy=noArray(),int maxLevel=INT_MAX, Point offset=Point())
image: 是最终需要被填充的图像;
contours:是得到的一系列点的集合;
contourIdx:是指定某个contours的点集;
color:被填充的颜色,单色可以设置为Scalar(255)等;
thickness: 所画Contour的线条宽度,如果为负或CV_FILLED则绘制所有的Contours;
lineType: 线的连通性;
hierarchy:可选层次信息结构,这里面是findContours所的到的基于Contours的层级信息;
maxLevel: 绘制轮廓的最大等级。如果等级为0,绘制单独的轮廓。如果为1,绘制轮廓及在其后的相同的级别下轮廓。如果值为2,所有的轮廓。如果等级为2,绘制所有同级轮廓及所有低一级轮廓,诸此种种。如果值为负数,函数不绘制同级轮廓,但会升序绘制直到级别为abs(max_level)-1的子轮廓
offset:照给出的偏移量移动每一个轮廓点坐标.当轮廓是从某些感兴趣区域(ROI)中提取的然后需要在运算中考虑ROI偏移量时,将会用到这个参数。
比如我通过findContours函数得到了相应的vector<vector<cv::Point> > vecContours点集信息,要把这些点集信息画出来
binImage为要画的图片,binImage事先已经声明好了,例子如下:
drawContours 在图像中绘制外部和内部的轮廓。
drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness=1, int lineType=8, InputArray hierarchy=noArray(),int maxLevel=INT_MAX, Point offset=Point())
image: 是最终需要被填充的图像;
contours:是得到的一系列点的集合;
contourIdx:是指定某个contours的点集;
color:被填充的颜色,单色可以设置为Scalar(255)等;
thickness: 所画Contour的线条宽度,如果为负或CV_FILLED则绘制所有的Contours;
lineType: 线的连通性;
hierarchy:可选层次信息结构,这里面是findContours所的到的基于Contours的层级信息;
maxLevel: 绘制轮廓的最大等级。如果等级为0,绘制单独的轮廓。如果为1,绘制轮廓及在其后的相同的级别下轮廓。如果值为2,所有的轮廓。如果等级为2,绘制所有同级轮廓及所有低一级轮廓,诸此种种。如果值为负数,函数不绘制同级轮廓,但会升序绘制直到级别为abs(max_level)-1的子轮廓
offset:照给出的偏移量移动每一个轮廓点坐标.当轮廓是从某些感兴趣区域(ROI)中提取的然后需要在运算中考虑ROI偏移量时,将会用到这个参数。
比如我通过findContours函数得到了相应的vector<vector<cv::Point> > vecContours点集信息,要把这些点集信息画出来
binImage为要画的图片,binImage事先已经声明好了,例子如下:
binImage.setTo(0); for ( size_t i = 0; i < vecContours.size(); i++ ){ cv::drawContours( binImage, vecContours, i, Scalar(255), CV_FILLED, 8, vector<Vec4i>(), 0, Point() ); }
相关文章推荐
- nginx root&alias文件路径配置
- vivado: found timing loop
- linux 内存管理 2016/04/20
- 公司一小伙圆识别
- Linux makefile 教程 非常详细,且易懂【转】
- 在Linux上配置PySpark
- Linux ubuntu下svn的命令使用指南
- linux基础1
- Linux 环境变量 PATH 的默认值
- 【opencv】goodFeaturesToTrack源码分析-1
- CentOS 7.1安装Elasticsearch和Storm
- 从无到有:软件项目过程敏捷实践
- Linux内核编程实验二
- Flink on Hadoop 从零搭建
- tomcat 部署一个简单的 Java Servlet
- CentOS 7, lamp
- SharePoint 第一个网站
- Linux常用命令(持续更新)
- RHEL7安装部署Tomcat7
- PopupWindow,不消失