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创建列表并给列表赋初始值的方法
Jul 28 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python WSGI的深入理解
Aug 01 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
Sep 17 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
pandas的排序和排名的具体使用
Jul 31 Python
Python @property使用方法解析
Sep 17 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
python删除文件、清空目录的实现方法
Sep 23 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Python实现滑雪小游戏
Sep 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守护另一个php进程的例子
2015/02/13 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
python实现多线程抓取知乎用户
2016/12/12 Python
python装饰器实例大详解
2017/10/25 Python
Python制作词云的方法
2018/01/03 Python
Python简单实现控制电脑的方法
2018/01/22 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
python基础梳理(一)(推荐)
2019/04/06 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
初级Java程序员面试题
2016/03/03 面试题
2014年督导工作总结
2014/11/19 职场文书
swagger如何返回map字段注释
2021/07/03 Java/Android
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python