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字典排序实例详解
May 20 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
解决DataFrame排序sort的问题
Jun 07 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
python修改字典键(key)的方法
Aug 05 Python
Python切图九宫格的实现方法
Oct 10 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
Python实现扫码工具的示例代码
Oct 09 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
python之随机数函数的实现示例
Dec 30 Python
Python如何导出导入所有依赖包详解
Jun 08 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读取文件内容的几种方法详解
2013/06/26 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
封装的原生javascript弹出层代码
2010/09/24 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
Python命令启动Web服务器实例详解
2017/02/23 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
用Python进行websocket接口测试
2020/10/16 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
客户付款通知书
2015/04/23 职场文书
初中班干部工作总结
2015/08/10 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python