ROI (Region of Interest) cho phép cắt một vùng hình chữ nhật từ ảnh gốc để xử lý riêng.
Trong OpenCV C++, dùng Mat roi = img(Rect(x, y, width, height)). Vùng này chia sẻ dữ liệu với ảnh gốc (shallow copy).
Ví dụ
#include
using namespace cv;
int main() {
Mat img = imread("image.jpg");
if (img.empty()) return -1;
// Cắt vùng: x=100, y=100, width=200, height=150
Rect roiRect(100, 100, 200, 150);
Mat roi = img(roiRect);
// Vẽ hình chữ nhật lên ảnh gốc để minh họa
rectangle(img, roiRect, Scalar(0,255,0), 2);
imshow("Original", img);
imshow("ROI", roi);
waitKey(0);
return 0;
}
Lưu ý quan trọng
roitham chiếu dữ liệu củaimg. Thay đổiroisẽ thay đổiimg.- Để tách bản sao độc lập:
Mat roiClone = img(roiRect).clone(). - Kiểm tra ranh:
roiRect & Rect(0,0,img.cols,img.rows).
Kết quả
Hiển thị 2 cửa sổ: ảnh gốc có khung xanh, và vùng ROI cắt ra.