用python处理图片之打开\显示\保存图像的方法


Posted in Python onMay 04, 2018

一提到数字图像处理,可能大多数人就会想到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图片。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用递归解决全排列数字示例
Feb 11 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
python2 与 python3 实现共存的方法
Jul 12 Python
python 拼接文件路径的方法
Oct 23 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
Django集成celery发送异步邮件实例
Dec 17 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
Python实现照片卡通化
Dec 06 Python
Python中的程序流程控制语句
Feb 24 Python
Python 创建空的list,以及append用法讲解
May 04 #Python
浅谈python中字典append 到list 后值的改变问题
May 04 #Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 #Python
对python中的pop函数和append函数详解
May 04 #Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 #Python
对python append 与浅拷贝的实例讲解
May 04 #Python
浅谈Python中重载isinstance继承关系的问题
May 04 #Python
You might like
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
PHP开发文件系统实例讲解
2006/10/09 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
原生js调用json方法总结
2018/02/22 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python和Go语言的区别总结
2019/02/20 Python
Python变量访问权限控制详解
2019/06/29 Python
python常用运维脚本实例小结
2020/02/14 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
Python验证码截取识别代码实例
2020/05/16 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
EJB的激活机制
2013/10/25 面试题
县委务虚会发言材料
2014/10/20 职场文书
汽车转让协议书范本
2014/12/07 职场文书
雷锋电影观后感
2015/06/10 职场文书
2016年端午节寄语
2015/12/04 职场文书
导游词之广西漓江
2019/11/02 职场文书
MySQL的存储过程和相关函数
2022/04/26 MySQL