平时会遇到两张图片进行融合的情况,有时需要自己写代码去实现。这里使用python+numpy实现相关操作。
一般会有如下几种情况:

  1. 两张尺寸相同的图片融合
# alpha为图片的透明度
dest = top_img*alpha + bottom_img*(1-alpha)
  1. 两张大小不同的图片融合
    这种情况会比较复杂,需要为其中一张图添加一维透明通道,用以记录其每个像素的透明信息。而且为其添加位置信息。
def combine(top_img, bottom_img, alpha, position):'''合并两张图片:args:[in] top_img: 图像元素[in] bottom_img: 图像背景[in] alpha: 上层图片透明度[in] position: 上层图片左上角坐标(x,y)return:[out] image: 合并之后的图像'''# todo: 验证输入数据是否在合理区间内top_h,top_w = top_img.shape[:2]bottom_h,bottom_w = bottom_img.shape[:2]pos_x,pos_y = position[0],position[1]# 像素归一化top_img_float = top_img/255.0bottom_img_float = bottom_img/255.0# 为top_img添加透明通道cha_on_bg = np.zeros_like(bottom_img,dtype=np.float16)cha_on_bg[pos_y:pos_y+top_h,pos_x:pos_x+top_w,:] = top_img_floatalpha_channel = np.zeros((bottom_h,bottom_w),dtype=np.float16)alpha_channel[pos_y:pos_y+top_h,pos_x:pos_x+top_w] = alphaalpha_channel = np.expand_dims(alpha_channel, axis=-1)cha_rgba = np.dstack((cha_on_bg,alpha_channel))# 通道分割与图片融合comb_b = cha_rgba[:,:,0]*cha_rgba[:,:,3]+bottom_img_float[:,:,0]*(1-cha_rgba[:,:,3])comb_g = cha_rgba[:,:,1]*cha_rgba[:,:,3]+bottom_img_float[:,:,1]*(1-cha_rgba[:,:,3])comb_r = cha_rgba[:,:,2]*cha_rgba[:,:,3]+bottom_img_float[:,:,2]*(1-cha_rgba[:,:,3])comb_rgb = np.dstack( (comb_b,comb_g,comb_r))comb_rgb = (comb_rgb*255).astype(np.uint8)return comb_rgb

numpy实现图像融合相关推荐

  1. python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)

    https://blog.csdn.net/gm_ergou/article/details/92846396 1.均值偏移(磨皮效果) import cv2 as cv import numpy a ...

  2. 【Python】手把手教你用Python做一个图像融合demo,小白可上手!

    创作背景 说到融合,一下子会让我们这些95后想起来童年的动漫游戏王了! 发动魔法卡--融合! 哈哈,今天说得当然不是游戏王里的魔法了,但是我们使用的是Python魔法,今天我们将使用Python编程语 ...

  3. 【opencv系列08】OpenCV4.X图像融合操作

    点击上方"AI搞事情"关注我们 图像叠加 add(src1, src2, dst=None, mask=None, dtype=None)函数或者numpy操作实现图像按位相加,若 ...

  4. opencv学习笔记7:图像加法与图像融合

    图像加法 1.使用Numpy加法 运算方式:结果=图像1+图像2 原理:图像数据格式为unit8 8位二进制表示范围是0到255. 二进制相加 1.不超过255的,如100+58=158 2.两数相加 ...

  5. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. [Python图像处理] 三十五.OpenCV图像处理入门、算数逻辑运算与图像融合(推荐)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. python 变成float32_【Python】手把手教你用Python做一个图像融合demo,小白可上手!...

    创作背景 说到融合,一下子会让我们这些95后想起来童年的动漫游戏王了! 发动魔法卡--融合! 哈哈,今天说得当然不是游戏王里的魔法了,但是我们使用的是Python魔法,今天我们将使用Python编程语 ...

  8. 【图像处理】——图像特效处理(马赛克、图像融合、毛玻璃等)

    参考:https://blog.csdn.net/qq_43328040/article/details/109081414 import cv2 import numpy as np import ...

  9. [转载] opencv学习笔记7:图像加法与图像融合

    参考链接: python opencv 基础 4: addWeighted() 融合两张图像 图像加法 1.使用Numpy加法 运算方式:结果=图像1+图像2 原理:图像数据格式为unit8 8位二进 ...

最新文章

  1. 视频编解码的理论和实践2:Ffmpeg视频编解码
  2. 强迫用户升Win10?旧版Windows放弃对新CPU更新支持
  3. leetcode 81. 搜索旋转排序数组 II(二分查找)
  4. [html] 你知道微信端的浏览器内核是什么吗?
  5. 每天中一次500万彩票,谷歌CEO 2019薪酬曝光,总计2.81亿美元
  6. 新基建下 AI 算力市场崛起,华为凭什么从中分一杯羹?
  7. 解读 V8 GC Log(二): 堆内外内存的划分与 GC 算法
  8. “拯救网站运维经理赵明”已近尾声
  9. go struct 零值_《Go 语言程序设计》读书笔记 (五) 协程与通道
  10. ISO 9000 质量认证
  11. mysql中的rman备份与恢复_RMAN备份与恢复总汇
  12. win10 教育版本变专业版本
  13. 【生活中的逻辑谬误】功利误导和情感误导
  14. 舞蹈工作室舞蹈课程预约小程序开发制作
  15. python库包的安装方法_python包,库安装的6个方法
  16. 知识图谱构建中的抽取方法
  17. 如何实现从OPC到阿里云IoT平台的数据交换?
  18. python登录并关注公众号_python爬虫之微信公众号关注度排行榜
  19. ANASYS Fluent保存的文件打不开或打开出现错误,解决方法
  20. jeecgboot:设置为缓存路由,切换页面,保留数据

热门文章

  1. 网络隔离的办公网和互联网,如何安全地进行数据交换?
  2. 数字孪生白皮书_透过数字孪生白皮书2020,看平行世界的当下与未来
  3. Guice + Jersey + Jetty 框架 - 学习笔记
  4. Arcmap拓扑检查:重叠或者有空隙的面
  5. 三位共阴数码管动态显示按键控制加减
  6. python下载-Python中文版
  7. 泛微ecology 修改在线预览附件 大小限制
  8. sample 随机抽取样本
  9. 【MySQL基础】MySQL基本操作详解
  10. 访问时发生了共享冲突是什么意思_【CUDA 基础】5.1 CUDA共享内存概述