ROI区域图像复制、叠加、翻转和缩放
ROI区域
从原始图像中截取部分我们感兴趣的区域进行处理,这部分区域就称为ROI区域;
截取方式和使用方法
cv::Range(start,end)
Mat m2 = m4(Range(100,600),Range(400,900));
/*
区间为[start,end)
第一个rang表示y轴的开始值和结束值
第二个rang表示x轴的开始值和结束值
*
cv::Rect(x,y,w,h);
Rect roi(400, 100, w, h);
Mat m2 = m4(roi);
/*
x:表示左上角的x轴
y:表示左上角的y轴
w:width宽
h:高
*/
图像复制
在opencv中我们使用图像截取和 = 号赋值时都是浅拷贝,所谓浅拷贝就是建立了一个能够访问图像数据的变量,通过浅拷贝创建的变量的数据与原变量的数据相同,当改变浅拷贝变量时原变量也会随之改变;
如果我们不想改变原变量的数据可以使用 copyTo() 进行深拷贝
OpenCV中copyTo()有三种形式:
函数原型
void copyTo( OutputArray m ) const;
void copyTo( OutputArray m, InputArray mask ) const;
void copyTo(InputArray src, OutputArray dst, InputArray mask);
参数:
一个参数:一张输出图像
两个参数:一张输出图像和一个掩码图
三个参数:一张输入图像 一张输出图像和一个掩码图
简单示例
例如:
image_in.copyTo(image_out);
就是把image_in这张图复制(copy to)到image_out上。
又例如:
image_in.copyTo(image_out,mask);
则是不仅把image_in这张图复制(copy to)到image_out上,且image_in对