ในการแยกส่วนใดส่วนหนึ่งออกจากภาพ เราต้องค้นหาพื้นที่ก่อน จากนั้นเราต้องคัดลอกพื้นที่นั้นจากภาพหลักไปยังเมทริกซ์อื่น นี่คือวิธีการทำงานของ 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 และ 1 แสดงถึงจุดสิ้นสุดของสี่เหลี่ยม โดยการเปลี่ยนค่าเหล่านี้ เราสามารถเปลี่ยนขนาดของสี่เหลี่ยมผืนผ้าได้
ตัวอย่าง
โปรแกรมต่อไปนี้แสดงให้เห็นถึงการทำงานของภูมิภาคที่น่าสนใจใน 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; }
ผลลัพธ์