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中列表生成式的用法
Mar 31 Python
Python判断直线和矩形是否相交的方法
Jul 14 Python
python常见的格式化输出小结
Dec 15 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
Python找出最小的K个数实例代码
Jan 04 Python
python-itchat 获取微信群用户信息的实例
Feb 21 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
python 数据库查询返回list或tuple实例
May 15 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 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
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
php生成图片验证码的方法
2016/04/15 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
php实现算术验证码功能
2018/12/05 PHP
页面使用密码保护代码
2013/04/10 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
import的本质解析
2017/10/30 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
python3.7 的新特性详解
2019/07/25 Python
Django实现跨域请求过程详解
2019/07/25 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
python tornado修改log输出方式
2019/11/18 Python
python实现五子棋程序
2020/04/24 Python
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
群众路线教育实践活动方案
2014/02/02 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
禁止酒驾标语
2014/06/25 职场文书
会计专业自荐信范文
2015/03/05 职场文书
员工辞退通知书
2015/04/17 职场文书
水浒传读书笔记
2015/06/25 职场文书