前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“大脑”生长系列(七)

“大脑”生长系列(七)

作者头像
视界音你而不同
发布2020-04-10 16:04:36
2950
发布2020-04-10 16:04:36
举报
文章被收录于专栏:用户1692782的专栏
又是美好的一天,希望你今天拥有一个美好的心情,今天我们一起来看看OpenCV如何对两张图像做融合,也称之为画面叠化。

针对图像融合, OpenCV也提供了相关的接口:addWeighted。

代码语言:javascript
复制
原型:
 void addWeighted(InputArray src1,
double alpha,
InputArray src2,
                               double beta,
double gamma,
OutputArray dst,
int dtype = -1);
代码语言:javascript
复制
参数说明:
src1: 原图1
alpha: 混合中原图1所占的比重
src2: 原图2
beta:混合中原图2所占的比重
gamma: 增益
dst:生成的目标图
dtype:生成图像的色深,默认与原图1一致

画面混合的简单算法表示:

dst = src1 * alpha(透明度 [0 ~ 1] 浮点数) + src2 * (1 - alpha) + gamma(增益);


绝知此事要躬行

代码语言:javascript
复制
int main(int argc, char *argv[])
{
 Mat img1 = imread("2.jpg");
 Mat img2 = imread("3.jpg");
 resize(img2, img2, img1.size());
 Mat dst;
 float a = 0.8;
 addWeighted(img1, a, img2, 1 - a, 80, dst);
 namedWindow("blending");
 imshow("blending", dst);
 waitKey(0);
 return 0;
}

代码说明

1. 由于混合的需求,我们使用了resize将图像2的大小调整到与1一致; 2.使用addWeighted将两幅图像进行融合,可自行调整aplha和beta的值来观察实际效果。


请仔细看结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 视界音你而不同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档