美文网首页
Opencv笔记2:ROI区域图像叠加&初级图像混合

Opencv笔记2:ROI区域图像叠加&初级图像混合

作者: Zz鱼丸 | 来源:发表于2017-09-18 22:00 被阅读0次
一、设定感兴趣区域——ROI(region of interest)

ROI区域定义的两种方法:
定义ROI区域有两种方法,第一种是使用cv:Rect.顾名思义,cv::Rect表示一个矩形区域。指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数)就可以定义一个矩形区域。

Mat imageROI;  
//方法一  
imageROI=image(Rect(500,250,logo.cols,logo.rows)); 

另一种定义ROI的方式是指定感兴趣行或列的范围(Range)。Range是指从起始索引到终止索引(不包括终止索引)的一连段连续序列。cv::Range可以用来定义Range。如果使用cv::Range来定义ROI,那么前例中定义ROI的代码可以重写为:

mageROI=srcImage3(Range(250,250+logoImage.rows),Range(200,200+logoImage.cols)); 

addWeighted函数
这个函数的作用是,计算两个数组(图像阵列)的加权和。

void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1); 

第一个参数,InputArray类型的src1,表示需要加权的第一个数组,常常填一个Mat。
第二个参数,alpha,表示第一个数组的权重
第三个参数,src2,表示第二个数组,它需要和第一个数组拥有相同的尺寸和通道数。
第四个参数,beta,表示第二个数组的权重值。
第五个参数,dst,输出的数组,它和输入的两个数组拥有相同的尺寸和通道数。
第六个参数,gamma,一个加到权重总和上的标量值。看下面的式子自然会理解。
第七个参数,dtype,输出阵列的可选深度,有默认值-1。;当两个输入数组具有相同的深度时,这个参数设置为-1(默认值),即等同于src1.depth()。

相关文章

网友评论

      本文标题:Opencv笔记2:ROI区域图像叠加&初级图像混合

      本文链接:https://www.haomeiwen.com/subject/gjkisxtx.html