基本概念:
Rect(int x, int y, int width, int height);
参数含义:
Rect(左上角x坐标 , 左上角y坐标,矩形的宽,矩形的高)
Mat image = imread("C:\\Users\\Leo\\Desktop\\lena.jpg");
Rect rect1(256, 256, 128, 128);
Rect rect2(224, 224, 128, 128);
Mat roi1;
image(rect1).copyTo(roi1); // copy the region rect1 from the image to roi1
imshow("1", roi1);
waitKey(0);
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓把rect2所划定的区间图片复制给矩阵roi2↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Mat roi2;
image(rect2).copyTo(roi2); // copy the region rect2 from the image to roi2
imshow("2", roi2);
waitKey(0);
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓构造rect1与rect2的公共部分rect3区域,再从原图中节选出rect3区域的图↓↓↓↓↓↓↓
cv::Rect rect3 = rect1&rect2; // intersection of the two sets Mat roi3;
image(rect3).copyTo(roi3);
imshow("3", roi3);
waitKey(0);
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓构造rect1与rect2的总和部分rect3区域,再从原图中节选出rect3区域的图↓↓↓↓↓↓↓↓↓↓
Rect rect4 = rect1|rect2; // union of the two sets (the minimum bounding rectangle)
Mat roi4;
image(rect4).copyTo(roi4);
imshow("4", roi4);
waitKey(0);
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓把前面获取到的roi1图片将rect5区域替换掉↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Rect rect5(10, 10, 128, 128);
roi1.copyTo(image(rect5)); // copy the region rect1 to the designated region in the image
imshow("5", image);
waitKey(0);
//=======================================================================
---------------------
其他几篇参考:
https://blog.csdn.net/yhl_leo/article/details/50593825
https://blog.csdn.net/qq_15698613/article/details/83857914