新闻  |   论坛  |   博客  |   在线研讨会
独家|OpenCV 1.5 利用OpenCV叠加(混合)两幅图像
数据派THU | 2021-08-07 21:12:06    阅读:304   发布文章

目标

在本教程中,你将学习以下内容:

什么是线性叠加?为什么它非常有用;

如何利用 addWeighted()函数叠加两幅图像。

理论

下述解释援引自理查德·斯泽利斯基(Richard Szeliski)的《计算机视觉算法和应用》一书。

从以前的教程中,我们已经学习了一些像素的操作。线性叠加操作符是一个比较有趣的二元(双输入)运算符:

1.png

通过改变α的取值(从0→1),此操作符可执行两幅图像或视频之间时间交叉叠加,正如幻灯片放映和电影制作中所示(是不是很酷?)

源代码

下载源代码。

2.png

解释

为了执行:

3.png

需要输入两幅源图像( f 0 ( x)和f 1 ( x ) )。因此,我们用常用的方法加载两幅图像:

4.png

在这里用到 LinuxLogo.jpg 和 WindowsLogo.jpg两幅图像

警告

添加的两幅图像src1和src2必须具备相同的大小(宽度和高度)和数据类型。

接下来,需要生成g(x)图像。为此,利用addWeighted()函数可以很方便地实现:

9.png

addWeighted()函数的输出为:

5.png

其中,gamma是上述代码中的参数0.0。

创建窗口,显示图像,等待用户结束程序。

6.png

结果图像

7.png

注:本文以C++语言代码为例,获取Java和python版本可在原文中查看:

https://docs.opencv.org/4.5.2/d5/dc4/tutorial_adding_images.html

下一小节:1.6 改变图像的对比度和亮度!

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客