如何使用 C++ 中的 OpenCV 处理感兴趣区域 (ROI)?


若要将图像的特定部分分离出来,我们首先必须定位该区域。然后,我们必须将该区域从主图像复制到另一个矩阵。这就是 OpenCV 中 ROI 的工作原理。

在此示例中,两个矩阵已在开头声明。之后,将名为“image_name.jpg”的图像加载到“image1”矩阵中。下一行“image2=image1 (Rect(100, 100, 120, 120));”需要特别注意。此行剪切出图像的已定义区域并将其存储在“image2”矩阵中。

该图显示了我们在此使用“Rect(100,100,120,120)”代码所做的工作。此代码行的基本形式为“Rect(x, y,x1,y1)”。其中,x 和 y 定义矩形的起点,而 x1 和 y1 表示矩形的终点。通过更改这些值,我们可以更改矩形的大小。

示例

以下程序演示了 OpenCV 中感兴趣区域的工作原理

#include
#include
#include
using namespace std;
using namespace cv;
int main() {
   Mat image1; //Declaring a matrix named 'image1'//
   Mat image2; //Declaring a matrix named 'image2'//
   image1 = imread("RGB.png"); //Loading an image name 'image_name.png into image1 matrix//
   image2 = image1(Rect(100, 100, 120, 120)); //imposing a rectangle on
   image1//
   namedWindow("Image_Window1"); //Declaring an window to show actual image//
   namedWindow("Image_Window2"); //Declaring an window to show ROI//
   imshow("Image_Window1", image1); //Showing actual image//
   imshow("Image_Window2", image2);
   waitKey(0);
   return 0;
}

输出


更新于: 2021 年 5 月 3 日

3K+ 浏览量

助力您的 职业

完成课程并获得认证

开始学习
广告
© . All rights reserved.