Opencv 图像填充

期望效果:
在image指定的矩形区域,填充纯色;

函数
Mat filledROIMat(Mat srcImage0, Rect rectROI)
{
    Mat srcImage = srcImage0.clone();
    Point2i pt1;
    Point2i pt2;
    pt1.x = rectROI.x; pt1.y = rectROI.y;
    pt2.x = rectROI.width; pt2.y = rectROI.height;
    /////////////////////////////////////////////////////////////////////////////////

    rectangle(srcImage, pt1, pt2, cv::Scalar(0), -1);
    
    return srcImage;
}
 

测试代码:
void Test3()
{
    Mat src, src_gray, binImg;
    //1.读入并检测
    src = imread("D:/images/lena.jpg", 1);
    Mat dst = filledROIMat(src, Rect(100,100,130,350));

    imshow("dst", dst);
    waitKey(0);
    destroyAllWindows();
}

效果图:

 

补充一个多边形填充方法

void fillPoly( Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int line_type, int shift, Point offset ) 
参数: 
pts 指向多边形的数组指针 
npts 多边形的顶点个数的数组 
contours 组成填充区域的线段的数量 
其他参数同line()参数

示例代码:

Demo效果图:

发布了201 篇原创文章 · 获赞 159 · 访问量 63万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览