opencv 图像叠加ROI & 图像混合

设定图像感兴趣的区域ROI,可将另一幅图片叠加到该区域;或者通过addWeight函数进行线性混合,下面是以上两种方法的示例:


#include<iostream>

#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;


int main(int argc, int **argv) {

Mat src, logg;
src = imread("F:\\img\\dota2.jpg");
logg = imread("F:\\img\\dota_log02.jpg");
if (!src.empty()) {
cout << "src img opened error !" << endl;
}
if (!logg.empty()) {
cout << "logg img opened error !" << endl;
}
/* 方法一 */
Mat src02ROI = src(Range(20, 20 + logg.rows), Range(20, 20 + logg.cols));
//加载掩膜,必须是灰度图像
Mat mask = imread("F:\\img\\dota_log02.jpg", 0);
//将掩膜复制到ROI
logg.copyTo(src02ROI,mask);
namedWindow("srcROI");
imshow("log02", logg);
imshow("srcROI", src);


/* 方法二 */
Mat src01;
src01= imread("F:\\img\\dota1.jpg");
Mat log01 = imread("F:\\img\\dota_log01.jpg");
if (!src01.empty()) {
cout << "src01 img opened error !" << endl;
}
if (!log01.empty()) {
cout << "log01 img opened error !" << endl;
}
Mat src01ROI = src01(Range(20, 20 + log01.rows), Range(20, 20 + log01.cols));

double alptha = 0.4;
double beta = 0.6;
//Mat desImg = src.clone();

addWeighted(src01ROI, alptha, log01, beta, 0.0, src01ROI);
imshow("addWeighted src01", src01);
imshow("log01", log01);

waitKey(0);
return 0;

}





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值