使用 OpenCV 在图像上创建矩形区域蒙版
Posted
技术标签:
【中文标题】使用 OpenCV 在图像上创建矩形区域蒙版【英文标题】:Create a rectangle region mask on image with OpenCV 【发布时间】:2013-04-05 19:58:24 【问题描述】:有一张以cv::Mat
格式读取的图像,我只想在图像中心保留一个矩形区域以进行检测。我尝试了cvCopy
方法,但它要求图像格式为cvArr
,有没有人知道如何实现仍然使用Mat
格式?
有我创建蒙版的代码和屏幕截图,蒙版的大小与原始帧不匹配似乎很奇怪。请问这里有什么建议吗?
*cap >> frame1;
Rect roi(100,100,100,100);
for(int i =0; i<frame1.rows; i++)
for(int j=0; j<frame1.cols;j++)
if(!roi.contains(Point(i,j)))
frame1.at<uchar>(i,j) = 0;
【问题讨论】:
【参考方案1】:只需创建引用相同数据的新图像。
cv::Rect const mask(x1, y1, x2, y2);
cv::Mat roi = image(mask);
现在您可以进行 roi 处理了。对 roi 的所有更改也将应用于图像。
【讨论】:
我正在尝试制作 Eclipse 的面具,但是当我制作它的对象时,这个函数显示错误,就像ellipse const mask(img,Point(20,40), Size(60,40),0,0,360, Scalar(0,0,0));
嗨,艾哈迈德。抱歉,这些信息不足以帮助您。请创建一个新问题并提供更多详细信息。以上是关于使用 OpenCV 在图像上创建矩形区域蒙版的主要内容,如果未能解决你的问题,请参考以下文章