โจทย์
เพื่อแยกส่วนเฉพาะจากภาพ เราต้องระบุพื้นที่ก่อน จากนั้นคัดลอกพื้นที่นั้นจากภาพหลักไปยังเมทริกซ์อีกตัวหนึ่ง นี่คือวิธีการทำงานของ ROI ใน OpenCV
ในตัวอย่างนี้ ประกาศเมทริกซ์สองตัวในตอนต้น หลังจากนั้น โหลดภาพชื่อ '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 แทนจุดสิ้นสุดของสี่เหลี่ยมผืนผ้า โดยการเปลี่ยนค่าเหล่านี้ เราสามารถเปลี่ยนขนาดของสี่เหลี่ยมผืนผ้าได้
ตัวอย่าง
โปรแกรมต่อไปนี้สาธิตการทำงานของ Region of Interest ใน OpenCV:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
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 named 'image_name.png' into image1 matrix
image2 = image1(Rect(100, 100, 120, 120)); // imposing a rectangle on image1
namedWindow("Image_Window1"); // Declaring a window to show actual image
namedWindow("Image_Window2"); // Declaring a window to show ROI
imshow("Image_Window1", image1); // Showing actual image
imshow("Image_Window2", image2);
waitKey(0);
return 0;
}
ผลลัพธ์
