Python图像处理实现两幅图像合成一幅图像的方法【测试可用】


Posted in Python onJanuary 04, 2019

本文实例讲述了Python图像处理实现两幅图像合成一幅图像的方法。分享给大家供大家参考,具体如下:

将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅图像合成一幅图像的接口。

下面我们通过不同的方式,将两图合并成一幅图像。

Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

1、使用Image.blend()接口

代码如下:

# -*- coding:utf-8 -*-
from PIL import Image
def blend_two_images():
  img1 = Image.open( "bridge.png ")
  img1 = img1.convert('RGBA')
  img2 = Image.open( "birds.png ")
  img2 = img2.convert('RGBA')
  img = Image.blend(img1, img2, 0.3)
  img.show()
  img.save( "blend.png")
  return
blend_two_images()

两幅图像进行合并时,按公式:blended_img = img1 * (1 ? alpha) + img2* alpha 进行。

合成结果如下:

Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

2、使用Image.composite()接口

该接口使用掩码(mask)的形式对两幅图像进行合并。

代码如下:

# -*- coding:utf-8 -*-
from PIL import Image
def blend_two_images2():
  img1 = Image.open( "bridge.png ")
  img1 = img1.convert('RGBA')
  img2 = Image.open( "birds.png ")
  img2 = img2.convert('RGBA')
  r, g, b, alpha = img2.split()
  alpha = alpha.point(lambda i: i>0 and 204)
  img = Image.composite(img2, img1, alpha)
  img.show()
  img.save( "blend2.png")
  return
blend_two_images2()

代码第9行中指定的204起到的效果和使用blend()接口时的0.3类似。

合并后的效果如下:

Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现360的字符显示界面
Feb 21 Python
在Python中编写数据库模块的教程
Apr 29 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
Django实现自定义404,500页面教程
Mar 26 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
python IDLE添加行号显示教程
Apr 25 Python
python能在浏览器能运行吗
Jun 17 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
python re.match()用法相关示例
Jan 27 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 #Python
django主动抛出403异常的方法详解
Jan 04 #Python
pyspark操作MongoDB的方法步骤
Jan 04 #Python
详解Appium+Python之生成html测试报告
Jan 04 #Python
python虚拟环境迁移方法
Jan 03 #Python
对django xadmin自定义菜单的实例详解
Jan 03 #Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 #Python
You might like
虫族 Zerg 历史背景
2020/03/14 星际争霸
php下通过POST还是GET来传值
2008/06/05 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
Python中的各种装饰器详解
2015/04/11 Python
Python生成数字图片代码分享
2017/10/31 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Django日志及中间件模块应用案例
2020/09/10 Python
如何开发安全的AJAX应用
2014/03/26 面试题
市政施工员自我鉴定
2014/01/15 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技