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 12 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
Python编程中NotImplementedError的使用方法
Apr 21 Python
python 构造三维全零数组的方法
Nov 12 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
Python模拟键盘输入自动登录TGP
Nov 27 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 Python
Pytorch中的数据集划分&正则化方法
May 27 Python
python识别围棋定位棋盘位置
Jul 26 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
php 常用的系统函数
2017/02/07 PHP
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
Python中字典和JSON互转操作实例
2015/01/19 Python
Python多线程下载文件的方法
2015/07/10 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
python用插值法绘制平滑曲线
2021/02/19 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
什么是Python中的匿名函数
2020/06/02 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
物业工作计划书
2014/01/10 职场文书
考试没考好检讨书
2014/01/31 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
男生贾里读书笔记
2015/06/30 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server