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  连接字符串(join %)
Sep 06 Python
java直接调用python脚本的例子
Feb 16 Python
Python迭代用法实例教程
Sep 08 Python
Python中使用gzip模块压缩文件的简单教程
Apr 08 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
Python 获取div标签中的文字实例
Dec 20 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
python打开使用的方法
Sep 30 Python
打包PyQt5应用时的注意事项
Feb 14 Python
基于python爬取链家二手房信息代码示例
Oct 21 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Python实现句子翻译功能
2017/11/14 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
Python 如何展开嵌套的序列
2020/08/01 Python
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
厂办主管岗位职责范本
2014/02/28 职场文书
骨干教师考核方案
2014/05/09 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
2014年电工工作总结
2014/11/20 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript