美文网首页
【08】Opencv-Mask操作

【08】Opencv-Mask操作

作者: 豚大叔的小屋 | 来源:发表于2023-03-09 15:11 被阅读0次

1.Mask掩膜
mask是掩膜,可以用来遮盖非感兴趣区,突出感兴趣区,使得图像处理只专注于ROI部分。
注意:mask最终需要与要作用到的输入图像的尺寸与类型保持一致

2.举例子
int main() {
Mat src = imread("img1.png", IMREAD_GRAYSCALE);
imshow("src", src);
// 定义mask,大小640*480,像素全0
Mat mask = cv::Mat::zeros(Size(640, 480), CV_8UC1);

// 作一个从坐标(220,120),宽200,高200的矩形框,框内填充白色,从方法1,2,3中任选一
// 方法1
rectangle(mask, cv::Rect(220, 120, 200, 200), Scalar(255), -1);
// 方法2
mask(cv::Rect(320, 50, 240, 310)) = 255;
// 方法3
mask(cv::Rect(320, 50, 240, 310)).setTo(255);

Mat dst;
// 将src中对应对应掩膜ROI中区域拷贝到dst
src.copyTo(dst, mask);

imshow("mask",mask);
imshow("dst", dst);
waitKey();
return 0;
}

相关文章

网友评论

      本文标题:【08】Opencv-Mask操作

      本文链接:https://www.haomeiwen.com/subject/rquuldtx.html