您当前的位置: 首页 >  opencv

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Opencv drawContours函数用于绘制和填充

鱼儿-1226 发布时间:2020-08-03 10:29:04 ,浏览量:0

 在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 vecContours点集信息,要把这些点集信息画出来 binImage为要画的图片,binImage事先已经声明好了,例子如下:

 

 
  1. binImage.setTo(0);

  2. for ( size_t i = 0; i < vecContours.size(); i++ ){

  3. cv::drawContours( binImage, vecContours, i, Scalar(255), CV_FILLED, 8, vector(), 0, Point() );

  4. }

  5.  
关注
打赏
1604459285
查看更多评论
立即登录/注册

微信扫码登录

0.0427s