이미지에서 특정 부분을 분리하려면 먼저 해당 영역을 찾아야 합니다. 그런 다음 해당 영역을 기본 이미지에서 다른 매트릭스로 복사해야 합니다. 이것이 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; }
출력