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 多线程应用介绍
Dec 19 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
详解Swift中属性的声明与作用
Jun 30 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
python实现粒子群算法
Oct 15 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
Terran剧情介绍
2020/03/14 星际争霸
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
8个PHP数组面试题
2015/06/23 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
jQuery示例收集
2010/11/05 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
python3生成随机数实例
2014/10/20 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
python读取文件名并改名字的实例
2019/01/07 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
Python json转字典字符方法实例解析
2020/04/13 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
HTML文本属性&颜色控制属性的实现
2019/12/17 HTML / CSS
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
优秀毕业大学生推荐信
2013/11/13 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
2015年派出所工作总结
2015/04/24 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
Docker官方工具docker-registry案例演示
2022/04/13 Servers
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技