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求解水仙花数的方法
May 11 Python
详解Python中heapq模块的用法
Jun 28 Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 Python
Python程序退出方式小结
Dec 09 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
PyQt5每天必学之拖放事件
Aug 27 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
如何用python写个模板引擎
Jan 14 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 星际争霸
php下使用iconv需要注意的问题
2010/11/20 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
PHP类型约束用法示例
2016/09/28 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
详解Python编程中time模块的使用
2015/11/20 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
python样条插值的实现代码
2018/12/17 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
新锐科技Java程序员面试题
2016/07/25 面试题
校园创业策划书
2014/01/14 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
自荐信的格式
2014/03/10 职场文书
2014年库房工作总结
2014/11/26 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
《刷子李》教学反思
2016/02/20 职场文书
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python
python基础之//、/与%的区别详解
2022/06/10 Python