用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之模块的加载
Oct 24 Python
Python中给List添加元素的4种方法分享
Nov 28 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python获取本机所有IP地址的方法
Dec 26 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python hash每次调用结果不同的原因
Nov 21 Python
基于h5py的使用及数据封装代码
Dec 26 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
Python定时任务APScheduler原理及实例解析
May 30 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
接口可以包含哪些成员
2012/09/30 面试题
师范毕业生个人求职信
2013/12/09 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技