python使用OpenCV模块实现图像的融合示例代码


Posted in Python onApril 10, 2020

可以通过OpenCV函数cv.add()或简单地通过numpy操作添加两个图像,res = img1 + img2.两个图像应该具有相同的深度和类型,或者第二个图像可以是标量值.

三种融合

注意融合时,一般来说两个图像的尺寸是一样大小的,如果大小不一样,需要把大的图像的某一部分先截出来,与小的图先融合,再作为整体替换掉原来大图中抠出的小图部分。

"""
# @Time  : 2020/4/3
# @Author : JMChen
"""
import cv2 as cv

img1 = cv.imread('logo.png')
img2 = cv.imread('lena.png')
# 在lena.png获取和logo.png大小相同的ROI
rows, cols, channels = img1.shape
img_ROI1 = img2[0:rows, 0:cols]

img_ROI2 = cv.addWeighted(img1, 0.7, img_ROI1, 0.3, 0)
img2[0:rows, 0:cols] = img_ROI2

# 显示混合后的图片
cv.imshow('img2', img2)
cv.waitKey(0)

# 将两幅图像(lena.png)+ (logo.png)进行融合
img2 = cv.imread('lena.png')
# 1,在lena.png获取和logo.png大小相同的ROI
img_ROI1 = img2[0:rows, 0:cols]

# 2,基于logo.png的灰度图,利用简单的阈值分割创建一个掩模
img1_gray = cv.cvtColor(img1, cv.COLOR_BGR2GRAY)
ret, mask = cv.threshold(img1_gray, 10, 255, cv.THRESH_BINARY)
mask_inv = cv.bitwise_not(mask)

# 3,与掩模进行按位与操作,去掉logo中非0部分,得到新的图
new_img2 = cv.bitwise_and(img_ROI1, img_ROI1, mask=mask_inv)

# 4,将新图与logo相加,然后将这一部分替换掉原始图像的img_ROI1部分
dst = cv.add(img1, new_img2)
img2[0:rows, 0:cols] = dst

cv.imshow('res', img2)
cv.waitKey(0)
cv.destroyAllWindows()

# 实现另一种融合
img2 = cv.imread('lena.png')
img_ROI1 = img2[0:rows, 0:cols]

dst_1 = cv.addWeighted(img_ROI1, 0.55, dst, 0.45, 0)
img2[0:rows, 0:cols] = dst_1

cv.imshow('res_2', img2)
cv.waitKey(0)
cv.destroyAllWindows()

效果如下:

python使用OpenCV模块实现图像的融合示例代码

python使用OpenCV模块实现图像的融合示例代码

相关的比例参数可以自己按需调

到此这篇关于python使用OpenCV模块实现图像的融合示例代码的文章就介绍到这了,更多相关OpenCV 图像融合内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中PIL安装简单教程
Apr 21 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
python文件读取失败怎么处理
Jun 23 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
Python打包为exe详细教程
May 18 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 #Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 #Python
jupyter notebook清除输出方式
Apr 10 #Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 #Python
jupyter notebook参数化运行python方式
Apr 10 #Python
Python库skimage绘制二值图像代码实例
Apr 10 #Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 #Python
You might like
PHP中的命名空间详细介绍
2015/07/02 PHP
基于php编程规范(详解)
2017/08/17 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
jquery中this的使用说明
2010/09/06 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
python pandas生成时间列表
2019/06/29 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
设计模式的基本要素是什么
2014/04/21 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL