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中input和raw_input的一点区别
Oct 21 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
numpy返回array中元素的index方法
Jun 27 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
Python文件读写保存操作的示例代码
Sep 14 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
解决yum对python依赖版本问题
Jul 05 Python
Python基础之高级变量类型实例详解
Jan 03 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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
js中eval详解
2012/03/30 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
vue-router命名视图的使用讲解
2019/01/19 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
Python编程之属性和方法实例详解
2015/05/19 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python 实现简单的电话本功能
2015/08/09 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
使用Django清空数据库并重新生成
2020/04/03 Python
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
员工培训心得体会
2013/12/30 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
特种设备安全管理制度
2015/08/06 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
APP界面设计技巧和注意事项
2022/04/29 杂记