需要将掩膜叠加在原图上,并调整掩膜至半透明状态。试了很久,终于找到了最简单最有效的办法。简单做个记录,如果有什么问题请各位大牛指正。

主要使用了cv2.addWeighted函数。

融合的两个图像大小需要相同。参考cv2.addWeighted

想强调的是Python在处理图像时,有各种模块可以调用。但是各模块在读取和处理图像时各有特色。所以经常出现混合用的情况。比如cv2读取图像后为矩阵,可以直接修改图像。这里特意用了两个函数,一个函数fcv主要使用cv2模块,一个函数mask使用PIL的Image。函数mask可对掩膜的颜色进行修改,掩膜位置变色,黑色背景部分变透明。具体见不同图像模块

还有一个问题就是png和jpg图像在读取时也不同,png为RGBA四通道,转化为矩阵后,图像宽和高也发生了翻转。

import cv2,os
from PIL import Image
imgpath='C:\\brc_b.png'
imgpath_mask='C:\\brc_b_m.png'
def fcv(imgpath):#将原图和掩膜融合mask_path = mask(imgpath_mask)mask = cv2.imread(mask_path)img_o = cv2.imread(imgpath)alpha=0.5beta=1output=img_o.copy()print(type(output))cv2.addWeighted(mask, alpha, output, beta,0)cv2.imshow("output",output)cv2.waitKey(0)
def mask(imgpath_mask):#保存掩膜,返回掩膜地址img_m = Image.open(imgpath_mask)#图片为png格式,所以不需要转换为RGBA格式#img_m = img_m.convert('RGBA')#若非png格式,需要转化格式h_m,w_m=img_m.size#一般情况下为(w,h),png四通道格式下,为(h,w)red_pixel=(0,255,0,0) #green_pixel=(255,0,0,0),yellow_pixel=(255,255,0,0),black_pixel=(0,0,0,255),white_pixel=(255,255,255,255) 常见颜色for i in range(int(h_m)):for j in range(int(w_m)):if img_m.getpixel((i,j))==black_pixel:#掩膜中黑色的像素变透明img_m.putpixel((i,j),(0,0,0,0))elif img_m.getpixel((i,j))==white_pixel:#掩膜中白色的像素变成黄色img_m.putpixel((i,j),(255,255,0,0))print('MASKdone')image_save_path = 'C:\\brc-b-m.png' ##将整数和字符串连接在一起img_m.save(image_save_path)return image_save_path
fcv(imgpath)
print('done')

原图

背景不透明时,可设置为(0,0,0,255)


背景不透明时,可设置为(0,0,0,0)


最后融合透明背景的掩膜和原图后的结果

图像与掩膜叠加,掩膜变透明相关推荐

  1. 使用Python,OpenCV制作图像Mask——截取ROIs及构建透明的叠加层

    使用Python,OpenCV制作图像Mask--截取ROIs及构建透明的叠加层 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用OpenCV制作Mask图像掩码.使用位运算和图像掩码允许我们只 ...

  2. ArcGIS遥感影像图像融合后利用掩膜去黑边

    ArcGIS遥感影像图像融合后利用掩膜去黑边 本文以landsat影像数据为例 遥感影像在ENVI中进行图像融合 在影像融合后,我们经常会发现图像的黑边值并不为0.黑边并不能简单顺利的去除掉. 掩膜处 ...

  3. 举个栗子!Tableau 技巧(90):让你的图表背景变透明

    随着 Tableau 2018.3 发版 ,数据粉期待很久的透明背景(如下图)功能终于可以用了! 很多 Tableau 用户想知道:在最新版的 Desktop 中,如何让背景变透明的问题呢? 今天,我 ...

  4. win10任务栏透明_任务栏1秒变透明,桌面瞬间高大上,美化必备!

    电脑工具第14期: 大家好呀,有的小伙伴在看到我的教程截图后,问我的电脑任务栏是怎样变透明的,其实很简单,本期章鱼哥就给大家推荐一款一键任务栏变透明神器,仅仅600多K,基本不占用电脑的cpu. 下图 ...

  5. 7.Unity2D 横版 未受伤害时,血条缓慢变透明+伤害数值显示(浮动,大小,颜色)+协程的应用

    总目录https://blog.csdn.net/qq_54263076/category_11900070.html?spm=1001.2014.3001.5482 1.血条缓慢变淡 我们都知道,当 ...

  6. 去除表格背景颜色 背景变透明

    表格背景变透明 /deep/ .el-table{ //表格背景变透明background: none;&:before{background: none;}& th{ //表头// ...

  7. 如何把照片背景变成透明?怎么把图片去白底变透明?

    平时当我们为文档.表格或幻灯片添加图片时,要是想将图片背景变透明该怎么处理呢?其实可以使用图片去底色(https://www.yasuotu.com/buttonColor)工具来操作,今天推荐这款图 ...

  8. 图像进行反转:白变黑,黑变白

    图像进行反转:白变黑,黑变白 二值图对图像进行反转 import cv2 img = "5.png" img = cv2.imread(img, 1) cv2.imshow('im ...

  9. matlab中什么叫掩膜,掩膜IC的定义 / 什么是掩膜Mask / 掩膜的优势

    什么是语音芯片掩膜MASK 语音IC要将声音以一定的格式烧录到IC内,才能发出声音.一般IC是通过烧写器和拷贝机即可完成,像OTP一次性烧录芯片等.但是如果量大,就得选用掩膜IC制作方法,就是在制造I ...

最新文章

  1. html web form id,小程序如何获取多个formId实现详解
  2. python top n排序
  3. display:table的几个用法
  4. sqlmap指定cookie_利用SQLMap进行cookie注入
  5. centos7安装svn客户端和使用
  6. Spring的AOP-AspectJ注解方式
  7. Apache 工作模式配置优化
  8. 如何在本地管理和切换多个 github 账号?
  9. win7 32位系统安装postmant无法正常启动。启动显示黑屏界面
  10. 我发现了 Microsoft Azure 中的两个漏洞
  11. 【2017-7-17】动软代码生成器 数据库连接 配置失败 解决方法
  12. Android 开发即时聊天工具 YQ 《更新》(源码下载)
  13. 关于flash跨域问题
  14. 用 Python 分析某医院药品销售案例
  15. 2020中兴捧月算法大赛参赛总结
  16. MPEG4与.mp4
  17. 人工智能未来的发展前景
  18. Navigating to current location (/login) is not allowed
  19. @开发者:个推小程序消息推送解决方案来了
  20. 【IUI 2020】人在回路机器学习——Human-in-the-Loop AI in Government: A Case Study

热门文章

  1. 废物利用 iPhone中的报刊杂志变身文件夹(无需越狱无需任何工具)
  2. Linux入门基础之 中
  3. linux64 汇编 signal,signal问题,SIGTERM被忽略?
  4. 基于DCGAN动漫头像生成的意义用论文方式表达
  5. 度量学习 流形学习_流形学习2
  6. C - The Domino Effect(dfs+回溯)
  7. 使用matlab对sinc函数进行最小二乘拟合仿真
  8. Django 上传文件出现 OSError Permission denied的解决方法
  9. 电脑装了w10没有w7流畅怎么办?
  10. oracle 查询数据库io,查看Oracle数据文件和磁盘i/o情况