期望效果:
在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效果图: