用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与shell的3种交互方式介绍
Apr 11 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
Python3 模块、包调用&路径详解
Oct 25 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
Python 实现域名解析为ip的方法
Feb 14 Python
Python3数字求和的实例
Feb 19 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
pytorch 实现打印模型的参数值
Dec 30 Python
django为Form生成的label标签添加class方式
May 20 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
Python用Jira库来操作Jira
Dec 28 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中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP的几个常用加密函数
2016/02/03 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
python查找第k小元素代码分享
2013/12/18 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
Pytorch之保存读取模型实例
2019/12/30 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Python编写单元测试代码实例
2020/09/10 Python
巴西购物网站:Onofre Agora
2020/06/08 全球购物
什么是索引指示器
2012/08/20 面试题
工程建设实施方案
2014/03/14 职场文书
小程序实现文字循环滚动动画
2021/06/14 Javascript
MYSQL如何查看操作日志详解
2022/05/30 MySQL