ROI区域:region of interest,感兴趣区域
bitwise_and 并不限制在二值图像,也可以用于灰度图的处理。可能在实际应用中,提取灰度图中的ROI区域更有价值。
比如我们随便找一张图,并将其转为灰度图:
ROI区域为白色圆形区域:
用 bitwise_and 在原图中提取的ROI区域为:
代码:
int main()
{
const char* imagename = "test.jpg";
Mat img = imread(imagename,0);
if (img.empty())
{
cout << "请确认图像文件是否正确" << endl;
exit(1);
}
Mat mask(img.rows, img.cols, CV_8UC1, Scalar(0, 0, 0)); //全黑背景图
circle(mask, Point(mask.rows / 2, mask.cols / 2), 150, Scalar(255, 255, 255), -1); //ROI区域
Mat dst; //输出图像
bitwise_and(img, mask, dst); //在原图中提取ROI区域
imwrite("img.jpg", img);
imwrite("mask.jpg", mask);
imwrite("dst.jpg", dst);
return 0;
}
当然很多时候ROI区域可能有多个,比如:
同样也可以用 bitwise_and 进行提取: