用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 Sleep休眠函数使用简单实例
Feb 02 Python
python基础教程之五种数据类型详解
Jan 12 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
Pycharm中如何关掉python console
Oct 27 Python
通过Python pyecharts输出保存图片代码实例
Nov 25 Python
python使用BeautifulSoup 解析HTML
Apr 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
BBS(php & mysql)完整版(六)
2006/10/09 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
市场安全管理制度
2014/01/26 职场文书
人力资源职位说明书
2014/07/29 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
python数字图像处理:图像简单滤波
2022/06/28 Python