如何使用 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.