Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

관심 영역(ROI)은 C++를 사용하는 OpenCV에서 어떻게 작동합니까?

<시간/>

이미지에서 특정 부분을 분리하려면 먼저 해당 영역을 찾아야 합니다. 그런 다음 해당 영역을 기본 이미지에서 다른 매트릭스로 복사해야 합니다. 이것이 OpenCV의 ROI가 작동하는 방식입니다.

이 예에서는 처음에 두 개의 행렬이 선언되었습니다. 그 후 'image_name.jpg'라는 이름의 이미지가 'image1'에 로드되었습니다. 행렬. 다음 줄 'image2=image1 (Rect(100, 100, 120, 120));' 특별한 주의가 필요합니다. 이 라인은 이미지의 정의된 영역을 잘라내어 'image2' 매트릭스에 저장합니다.

관심 영역(ROI)은 C++를 사용하는 OpenCV에서 어떻게 작동합니까?

그림은 여기서 '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;
}

출력 관심 영역(ROI)은 C++를 사용하는 OpenCV에서 어떻게 작동합니까?