图像处理领域,有一个非常重要的名词ROI。

什么是ROI?

它的英文全称是Region Of Interest,对应的中文解释就是感兴趣区域。

感兴趣区域,就是我们从图像中选择一个图像区域,这个区域就是图像分析所关注的焦点。我们圈定这个区域,那么我们要处理的图像就从大图像变为一个小图像区域了,这样以便进行进一步处理,可以大大减小处理时间。

定义ROI区域有两种方法:

第一种,指定矩形的坐标,并且规定好他的长宽。

Mat img = imread("1.jpg");Mat roi = img(Rect(500, 200, 100, 300));//Rect四个形参分别是:x坐标,y坐标,长,高;注意(x,y)指的是矩形的左上角点

第二种,指定感兴趣的行或列的范围。

Mat img = imread("1.jpg");Mat roi = img(Range(250, 250 + 100), Range(200, 200 + 100));//Range两个形参分别是:起始行或列,起始行或列+偏移量

简单看一下ROI区域的使用方法,下面的程序定义了ROI,并且我用绿框标记出来。

#include<opencv2\opencv.hpp>   #include<opencv2\highgui\highgui.hpp>using namespace std;using namespace cv;int main(){
    Mat srcImage = imread("lol0.jpg");    if (!srcImage.data)
    {        cout << "读取原始图失败!" << endl;        return -1;
    }

    rectangle(srcImage, Rect(0, 0, 600, 200), Scalar(0, 255, 0),2); //将感兴趣区域框出来
    imshow("ROI", srcImage);
    waitKey();    return 0;

}

绿框位置就是我们选的感兴趣区域。
移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

有时候我们不仅想把ROI标记出来,还想把ROI提取出来,成为一幅单独图片,那我们代码可以这么写: