C/C++ OpenCV设置感兴趣区域ROI
设置感兴趣区域(ROI,region of interest),来专注或者简化工作过程,也就是从图像中选择一个图像区域,这个区域是
图像分析所关注的重点。我们圈定的这个区域,以便进行进一步处理
定义ROI的两种方法
下面是代码:1.使用表示矩形区域的Rect。他指定矩形的左上角左边和矩形的长宽以定义一个矩形区域
例:其中image是已经载入好的图片
Mat imageROI=image(Rect(x,y,xleng,yleng))
2.指定感兴趣行或列的范围(Range),Range是指从起始索引到终止索引的一段联系序列
如:Mat imageROI=image(Range(500,500+xleng),Range(250,250+yleng))
- #include <opencv2\opencv.hpp>
- #include <opencv2\imgproc\imgproc.hpp>
- using namespace cv;
- int main()
- {
- Mat image1 = imread("1.jpg");
- Mat image2 = imread("2.jpg");
- if (!image1.data)
- {
- printf("第一张图片读取失败!\n");
- return -1;
- }
- imshow("image1", image1);
- if (!image2.data)
- {
- printf("第二张图片读取失败!\n");
- return -1;
- }
- imshow("image2", image2);
- //定义一个Mat类型并设置ROI区域
- Mat imageROI = image1(Rect(10, 15, image2.cols, image2.rows));
- //加载掩码
- Mat mask = imread("2.jpg");
- //将掩码复制到ROI
- image2.copyTo(imageROI, mask);
- imshow("利用ROI实验窗口叠加",image1);
- waitKey();
- return 0;
- }
运行结果: