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的Django框架完成视频处理任务的教程
Apr 02 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
python实现字符串和字典的转换
Sep 29 Python
python Django的web开发实例(入门)
Jul 31 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
Python实现序列化及csv文件读取
Jan 19 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
用Python远程登陆服务器的步骤
Apr 16 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
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
js+html实现周岁年龄计算器
2019/06/25 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
2019/10/17 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
delegate与普通函数的区别
2014/01/22 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
产品工艺师的岗位职责
2013/11/15 职场文书
求职简历中的自我评价分享
2013/12/08 职场文书
酒店执行总经理岗位职责
2013/12/15 职场文书
打架检讨书50字
2014/01/11 职场文书
活动总结的格式
2014/05/07 职场文书
员工试用期自我评价
2014/09/18 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
长城导游词
2015/01/30 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
董事长秘书工作总结
2015/08/14 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Linux磁盘管理方法介绍
2022/06/01 Servers