OPENCV中定义ROI区域以及ROI区域的相关融合(程序解读)

1.定义ROI区域 region of interest
2.用addWeighted函数进行图像混合
感兴趣区域的定义方法:
1.第一种是使用表示矩形的区域ROI,Rect指定矩形的左上角坐标,和矩形的长宽,.cols,.rows定义的
Mat imageROI;
imgROI=image(Rect(0,0,XX.cols,XX.rows));
2.第二种是区域的选取:
imageROI=image(Range(0,XX.rows),Range(0,XX.cols));
显示如何利用ROI区域将一幅图像加到另一幅图像的指定位置,是加到不是融合;
bool ROI_AddImage()
{
Mat img1=imread(“1.jpg”);
Mat img2=imread(“2.jpg”);
if(!img1.data){printf(“载入图片1出错”);return false;}
if(!img2.data){printf(“载入图片2出错”);return false;}

Mat imgROI=img1(Rect(0,0,img2.cols,img2.rows));

Mat mask=imread(“img2”,0);
img2.copyTo(imgROI,mask);//把图像放到指定区域中 mask可有可无,记住mask有的话就会使添加到指定区域更加逼真
imshow(“图像融合1”,img2); //图像融合的过程必须是相同大小的图片和图片的类型相同
return true;
}
将一幅图像添加到指定的区域
第二章:图像的线性混合操作
线性混合是一个典型的二元的像素操作:理论公式为:
g(x)=(1-a)f1(x)+af2(x); 前面的系数代表了图像混合的响应比例
采用的函数就是:addWeighted();
计算数组加权和:addWeighted();函数
addWeighted(1,2,3,4,5,6,7);1:输入的第一幅图片,2:第一幅图片的权重,3:输入第二幅图片,4:第二幅图片的权重,5:一个加到权重总和上的标量值,6:输出融合之后的图片,7:输出阵列的深度,这个深度是可以选择的
进行图像加权融合的时候必须要两幅图像的尺寸大小相同,图像的类型是一致的
bool linerBlending()
{
Mat img3=imread(“3.jpg”);
Mat img4=imread(“4.jpg”);
if(!img3.data){printf(“载入图片3错误”);return false;}
if(!img4.data){printf(“载入图片4错误”);return false;}
Mat dstImage;
double alphaValue=0.3;
double betaValue=(1-alphaValue);
addWeighted(img3,alphaValue,img4,betaValue,0.0,dstImage);
imshow(“线性融合图像”,dstImage);
}
初级图像的融合:指定区域的图像线性融合
bool ROI_LinerBlending()
{
Mat img5=imread(“5.jpg”);
Mat img6=imread(“6.jpg”);
Mat dst1Image;
if(!img5.data){printf(“载入图片5错误”);return false;}
if(!img6.data){printf(“载入图片6错误”);return false;}
Mat img2ROI=img6(Rect(0,0,img5.cols,img5.rows));
addWeighted(img5,0.4,img2ROI,0.7,0.0,dst1Image);
imshow(“指定区域的线性融合”,img6);
return true;
}
指定区域的线性图像融合;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值