python简单图片操作:打开\显示\保存图像方法介绍


Posted in Python onNovember 23, 2017

一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点:

1、不开源,价格贵

2、软件容量大。一般3G以上,高版本甚至达5G以上。

3、只能做研究,不易转化成软件。

因此,我们这里使用python这个脚本语言来进行数字图像处理。

要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的。

要使用python进行各种开发,就必须安装对应的库。这和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫库或包。安装这些库,一般都是使用pip来安装。

使用python进行数字图片处理,还得安装Pillow包。虽然python里面自带一个PIL(python images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL发展而来的。

pip install Pillow

一、图片的打开与显示

from PIL import Image
img=Image.open('d:/dog.png')
img.show()

虽然使用的是Pillow,但它是由PIL fork而来,因此还是要从PIL中进行import. 使用open()函数来打开图片,使用show()函数来显示图片。

这种图片显示方式是调用操作系统自带的图片浏览器来打开图片,有些时候这种方式不太方便,因此我们也可以使用另上一种方式,让程序来绘制图片。

from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('d:/dog.png')
plt.figure("dog")
plt.imshow(img)
plt.show()

这种方法虽然复杂了些,但推荐使用这种方法,它使用一个matplotlib的库来绘制图片进行显示。matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure,设置figure的标题,甚至可以使用subplot在一个figure中显示多张图片。matplotlib 可以直接安装

pip install matplotlib

python简单图片操作:打开\显示\保存图像方法介绍

figure默认是带axis的,如果没有需要,我们可以关掉

plt.axis('off')

打开图片后,可以使用一些属性来查看图片信息,如

print img.size #图片的尺寸
print img.mode #图片的模式
print img.format #图片的格式

显示结果为:

(558, 450)
RGBA
PNG

二、图片的保存

img.save('d:/dog.jpg')

就一行代码,非常简单。这行代码不仅能保存图片,还是转换格式,如本例中,就由原来的png图片保存为了jpg图片。

再介绍下图片保存为灰度图的简单操作,非常简单,打开图片并转换成灰度图的方法是:

im = Image.open('a.jpg').convert('L)

转换图像格式:

im.save('aa.gif')

以上代码把a.jpg 打开并转换成灰度图(像素值在0-255之间),然后保存成aa.gif格式。可以把上一行代码中‘aa.gif'改成路径加文件名,就可以保存到自己想要保存的地方了。

总结

以上就是本文关于python简单图片操作:打开\显示\保存图像方法介绍的全部内容,希望对大家有所帮助。有什么问题欢迎留言指出。

Python 相关文章推荐
Python中的包和模块实例
Nov 22 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
django之session与分页(实例讲解)
Nov 13 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python如何实现转换URL详解
Jul 02 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
Python将string转换到float的实例方法
Jul 29 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
Python 循环读取数据内存不足的解决方案
May 25 Python
python 使用pandas读取csv文件的方法
Dec 24 Python
python分析作业提交情况
Nov 22 #Python
Python分析学校四六级过关情况
Nov 22 #Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 #Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 #Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 #Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 #Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 #Python
You might like
西德产收音机
2021/03/01 无线电
php 8小时时间差的解决方法小结
2009/12/22 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
python查看微信好友是否删除自己
2016/12/19 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
离职告别感言
2015/08/04 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书