用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 24 Python
Python爬虫抓取手机APP的传输数据
Jan 22 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
对numpy中shape的深入理解
Jun 15 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
python内置数据类型之列表操作
Nov 12 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
利用python汇总统计多张Excel
Sep 22 Python
利用python做表格数据处理
Apr 13 Python
Python 多线程之threading 模块的使用
Apr 14 Python
Python字符串的转义字符
Apr 07 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中遍历二维数组的几种方法详解
2013/06/08 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
js select option对象小结
2013/12/20 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
AngularJS基础学习笔记之指令
2015/05/10 Javascript
浅析JavaScript动画
2015/06/10 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
JAVA程序员面试题
2012/10/03 面试题
舞蹈比赛获奖感言
2014/02/04 职场文书
元旦晚会策划方案
2014/02/18 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
提档介绍信范文
2015/10/22 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android