感兴趣区域:ROI
对感兴趣区域进行的一系列操作,相当于直接在原图相应部分进行操作。
Mat imageROI = srcImage(Rect(0,0,dstImage.cols, dstImage.rows));
- srcImage 为原图像
- Rect(0,0,dstImage.cols, dstImage.rows) 在原图像上寻一片矩形区域,左上角坐标为(0,0),长为 dstImage.cols,宽为 dstImage.rows
src.copyTo(dst, mask) 或 src.copyTo(dst)
可将 src 拷贝到 dst 上
- 若有 mask,将原图(src)与 mask 进行运算后得到的结果拷贝给 dst。其中,mask 必须为 CV_8U 类型,且大小与 src、dst 一致。
在位置(x,y)时,如果 mask 的像素值不等于 0,则 dst(x,y) = src(x,y);
如果 mask 的像素值等于 0,则 dst(x,y) = 0;(对于三通道的彩色图也适用)
- 若没有 mask,直接将 src 拷贝给 dst,同时要求 src 与 dst 大小一致。
代码示例:
#include <opencv.hpp>
using namespace cv;
int main(){
Mat srcImage = imread("1.jpg");
Mat dstImage = imread("2.jpg");
imshow("图1原始图", srcImage);
imshow("图2原始图", dstImage);
//创建一个感兴趣区域
Mat imageROI = srcImage(Rect(0,0,dstImage.cols, dstImage.rows));
//加载掩模板
Mat mask = imread("2.jpg", 0);
//进行复制
dstImage.copyTo(imageROI, mask);
//显示效果图
imshow("效果图为",srcImage);
waitKey(0);
}