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使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
Python遍历目录的4种方法实例介绍
Apr 13 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
Python读写文件方法总结
Jun 09 Python
浅谈Python基础之I/O模型
May 11 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
Django框架实现分页显示内容的方法详解
May 10 Python
Python表达式的优先级详解
Feb 18 Python
关于Python解包知识点总结
May 05 Python
Python高并发解决方案实现过程详解
Jul 31 Python
k-means & DBSCAN 总结
Apr 27 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基础学习笔记
2007/03/18 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
js实现文字滚动效果
2016/03/03 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
Python中关键字is与==的区别简述
2014/07/31 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
python魔法方法-自定义序列详解
2016/07/21 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python Web版语音合成实例详解
2019/07/16 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
python MD5加密的示例
2020/10/19 Python
成人教育自我鉴定
2013/11/01 职场文书
策划创业计划书
2014/02/06 职场文书
毕业晚会主持词
2014/03/24 职场文书
代收款委托书范本
2014/10/01 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2015年父亲节寄语
2015/03/23 职场文书
确保工程质量承诺书
2015/04/29 职场文书
公路施工安全责任书
2015/05/08 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书