用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 实现堆排序算法代码
Jun 05 Python
最基础的Python的socket编程入门教程
Apr 23 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
django框架创建应用操作示例
Sep 26 Python
Python图片的横坐标汉字实例
Dec 04 Python
python super函数使用方法详解
Feb 14 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
python实现同一局域网下传输图片
Mar 20 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
用Php实现链结人气统计
2006/10/09 PHP
PHP中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
php时区转换转换函数
2014/01/07 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript常用方法总结
2015/05/14 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
React Router基础使用
2017/01/17 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
python实现word 2007文档转换为pdf文件
2018/03/15 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
Python制作词云图代码实例
2019/09/09 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
八一建军节演讲稿
2014/09/10 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
2015年党小组工作总结
2015/05/26 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Python中requests做接口测试的方法
2021/05/30 Python