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计数排序和基数排序算法实例
Apr 25 Python
Python fileinput模块使用实例
May 28 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
Python循环语句中else的用法总结
Sep 11 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
Python从零开始创建区块链
Mar 06 Python
解决python中无法自动补全代码的问题
Dec 04 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
Python类成员继承重写的实现
Sep 16 Python
Django路由层URLconf作用及原理解析
Sep 24 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
PHP读取MySQL数据代码
2008/06/05 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
Python计算三维矢量幅度的方法
2015/06/15 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
深入浅析Python字符编码
2015/11/12 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
python实现简单的学生管理系统
2021/02/22 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
质检员的岗位职责
2013/11/15 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
优秀护士先进事迹
2014/05/08 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
大学毕业生自我评价
2015/03/02 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS