在图像处理领域,有一个非常重要的名词ROI。
那么什么是ROI呢?
它的英文全称是Region Of Interest
,对应的中文解释就是感兴趣区域。
感兴趣区域,就是我们从图像中选择一个图像区域,这个区域就是图像分析所关注的焦点。我们圈定这个区域,那么我们要处理的图像就从大图像变为一个小图像区域了,这样以便进行进一步处理,可以大大减小处理时间。
定义ROI方法
- 使用表示矩阵区域的Rect。
它指定矩阵的左上角坐标(构造函数的前两个参数)和矩阵的长宽(构造函数的后两个参数)以定义一个矩阵区域。
// 定义一个Mat类型并给定其设定的区域
Mat imageROI;
// 方法一
imageROI = image(Rect(100, 200, 100, 300));//Rect四个形参分别是:x坐标,y坐标,长,高;注意(x,y)指的是矩形的左上角点
- 指定感兴趣行或列的范围(Range)。
Range是指从起索引到终止索引(不包括终止索引)的一连串连续序列。cRange可以用来定义Range。如果使用Range来定义ROI,那么前例中定义ROI的代码可以重写为:
imageROI = image( Range(250, 250+logoImage.rows), Range(200, 200+logoImage.cols));//Range两个形参分别是:起始行或列,起始行或列+偏移量
标注ROI区域
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("test.jpg");
if (!srcImage.data