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 20 Python
简单了解什么是神经网络
Dec 23 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
详解python算法之冒泡排序
Mar 05 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
Sep 15 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python实现广度优先搜索过程解析
Oct 19 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
Python读取指定日期邮件的实例
2019/02/01 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
ORACLE十问
2015/04/20 面试题
春节超市活动方案
2014/08/14 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript