Để tách một phần cụ thể khỏi hình ảnh, trước tiên chúng ta phải xác định khu vực đó. Sau đó, chúng ta sẽ sao chép khu vực đó từ hình ảnh chính sang một ma trận khác. Đây là cách ROI inOpenCV hoạt động.
Trong ví dụ này, hai ma trận đã được khai báo ở đầu. Sau đó, một hình ảnh có tên 'image_name.jpg' đã được tải vào 'image1' ma trận. Dòng tiếp theo 'image2 =image1 (Rect (100, 100, 120, 120));' đòi hỏi sự chú ý đặc biệt. Dòng này cắt bỏ vùng xác định của hình ảnh và lưu trữ nó trong ma trận 'image2'.
Hình cho thấy những gì chúng tôi đã làm ở đây với mã 'Rect (100,100,120,120)'. Dạng cơ bản của dòng mã này là 'Rect (x, y, x 1 , y 1 ) '. Ở đây x và y xác định điểm bắt đầu của hình chữ nhật và x 1 và y 1 đại diện cho điểm cuối của hình chữ nhật. Bằng cách thay đổi các giá trị này, chúng ta có thể thay đổi kích thước của hình chữ nhật.
Ví dụ
Chương trình sau đây thể hiện hoạt động của Khu vực quan tâm trong 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; }
Đầu ra