Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การทำงานของ Region of Interest (ROI) ใน OpenCV ด้วย C++

โจทย์

เพื่อแยกส่วนเฉพาะจากภาพ เราต้องระบุพื้นที่ก่อน จากนั้นคัดลอกพื้นที่นั้นจากภาพหลักไปยังเมทริกซ์อีกตัวหนึ่ง นี่คือวิธีการทำงานของ ROI ใน OpenCV

ในตัวอย่างนี้ ประกาศเมทริกซ์สองตัวในตอนต้น หลังจากนั้น โหลดภาพชื่อ 'image_name.jpg' เข้าไปในเมทริกซ์ 'image1' บรรทัดถัดไป 'image2=image1 (Rect(100, 100, 120, 120));' ต้องการความสนใจพิเศษ บรรทัดนี้ครอปพื้นที่ที่กำหนดของภาพและเก็บไว้ในเมทริกซ์ 'image2'

การทำงานของ Region of Interest (ROI) ใน OpenCV ด้วย C++

รูปแสดงสิ่งที่เราทำที่นี่ด้วยโค้ด '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;
}

ผลลัพธ์

การทำงานของ Region of Interest (ROI) ใน OpenCV ด้วย C++