openCV实现图像融合的示例代码

 更新时间:2022年03月28日 10:47:25   作者:山居秋暝LS  
图像融合是两幅图片叠加在一起,本文主要介绍了openCV实现图像融合的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

1. 概念

图像融合: 两幅图片叠加在一起,形成前景背景的效果。

2. 流程

(1)读入要融合的两幅图片。
(2)把两幅图片调整到统一大小,方便下一步叠加。
(3)对两幅图片按照一定的权重相加。
(4)显示图片。img1,img2 --> resize --> cv2.addWeighted()–>show

addWeighted方法:

函数原型:

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

这个函数实现对输入的两幅图像进行线性系数的加权和。

第一个参数:src1,表示进行加权操作的第一个图像对象

第二个参数:double型的alpha,表示第一个图像的加权系数

第三个参数:src2,表示进行加权操作的第二个图像对象

第四个参数:double型的beta,表示第二个图像的加权系数,很多情况下,有关系 alpha+beta=1.0

第五个参数:double型的gamma,表示一个 作用到加权和后的图像上的标量,可以理解为加权和后的图像的偏移量

第六个参数:dst,表示两个图像加权和后的图像,尺寸和图像类型与src1和src2相同

3 代码

'''
图像融合(对图像加权):img1,img2 --> resize --> cv2.addWeighted() --> show
'''
import cv2
import matplotlib.pyplot as plt

# 1 read
fg = cv2.imread('fg.png', 1)
bg = cv2.imread('bg.png', 1)
fg = cv2.cvtColor(fg,cv2.COLOR_BGR2RGB)
bg = cv2.cvtColor(bg,cv2.COLOR_BGR2RGB)

# 2 resize
fg = cv2.resize(fg,(850,550),interpolation=cv2.INTER_AREA)
bg = cv2.resize(bg,(850,550),interpolation=cv2.INTER_AREA)

# 3 addWeighted
w1 = 0.8
w2 = 0.2
re = cv2.addWeighted(fg,w1,bg,w2,0)

# 4 show
plt.subplot(131)
plt.imshow(fg)
plt.title('fg')

plt.subplot(132)
plt.imshow(bg)
plt.title('bg')

plt.subplot(133)
plt.imshow(re)
plt.title('re')

plt.show()

到此这篇关于openCV实现图像融合的示例代码的文章就介绍到这了,更多相关openCV 图像融合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 我们为什么要减少Python中循环的使用

    我们为什么要减少Python中循环的使用

    这篇文章主要介绍了我们为什么要减少Python中循环的使用,我将阐述 Python 提供的一些简单但是非常有用的结构,一些小技巧以及一些我在数据科学工作中遇到的案例。我将讨论 Python 中的 for 循环,以及如何尽量避免使用它们,需要的朋友可以参考下
    2019-07-07
  • Python虚拟机字节码教程之控制流实现详解

    Python虚拟机字节码教程之控制流实现详解

    在本篇文章当中主要给大家分析 python 当中与控制流有关的字节码,通过对这部分字节码的了解,我们可以更加深入了解 python 字节码的执行过程和控制流实现原理
    2023-04-04
  • 浅谈python量化 双均线策略(金叉死叉)

    浅谈python量化 双均线策略(金叉死叉)

    这篇文章主要介绍了浅谈python量化 双均线策略(金叉死叉),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python实现二分查找算法

    python实现二分查找算法

    这篇文章主要为大家详细介绍了python实现二分查找算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Python操作PostgreSQL数据库的基本方法(增删改查)

    Python操作PostgreSQL数据库的基本方法(增删改查)

    PostgreSQL数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用,这篇文章主要给大家介绍了关于Python操作PostgreSQL数据库的基本方法,文中介绍了连接PostgreSQL数据库,以及增删改查,需要的朋友可以参考下
    2023-09-09
  • 保留已有python安装Anaconda的方法推荐

    保留已有python安装Anaconda的方法推荐

    在安装Anaconda之前,有的已经安装过一个Python版本了,但是又不想删除这个Python版本,该怎么办呢??这篇文章主要给大家介绍了关于保留已有python安装Anaconda的几种法推荐,需要的朋友可以参考下
    2023-12-12
  • ubuntu中配置pyqt4环境教程

    ubuntu中配置pyqt4环境教程

    本文给大家分享的是在Ubuntu系统中配置pyqt4的详细教程,有需要的小伙伴可以参考下
    2017-12-12
  • python3将视频流保存为本地视频文件

    python3将视频流保存为本地视频文件

    这篇文章主要为大家详细介绍了python3将视频流保存为本地视频文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • python实现多线程端口扫描

    python实现多线程端口扫描

    这篇文章主要为大家详细介绍了python实现多线程端口扫描,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • python定时任务timeloop库用法实例详解

    python定时任务timeloop库用法实例详解

    有些时候我们需要每隔一段时间就要执行一段程序,或者是往复循环执行某一个任务,下面这篇文章主要给大家介绍了关于python定时任务timeloop库用法的相关资料,需要的朋友可以参考下
    2023-01-01

最新评论