前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python图像处理库-初识PIL

Python图像处理库-初识PIL

作者头像
触摸壹缕阳光
发布2021-03-16 11:07:07
1.3K0
发布2021-03-16 11:07:07
举报

初识 PIL

PIL 全称为 Python Imaging Library,已经是 Python 平台事实上的图像处理标准库了。PIL 功能非常强大,但 API 却非常简单易用。**由于 PIL 仅支持到 Python 2.7,**加上年久失修,于是一群志愿者在 PIL 的基础上创建了兼容版本 Pillow(因此 Pillow 兼容 PIL 的绝大多数语法),支持最新的 Python 3.x,又加入了许多新特性,因此推荐使用 Pillow。

安装 Pillow

Pillow 的安装非常简单,不过需要注意 Pillow 和 PIL 不能共存在相同的环境中,因此在安装 Pillow 之前,先要卸载 PIL。如果已经默认安装了 Anaconda,Pillow 已经默认安装了,可以直接使用。否则,需要在命令行下通过 pip 安装:

代码语言:javascript
复制
pip install pillow

如果在 linux 下,遇到 Permission denied 安装失败,请在上面 pip 命令的前面加上 sudo。

安装完成之后,可以在 Python 的开发环境输入以下代码,测试 Pillow 是否安装成功,以及查看相应的版本号。

代码语言:javascript
复制
from PIL import Image

print(Image.VERSION)

这里需要注意,虽然使用的是 Pillow,但是导入的包依然是 PIL。

使用 Image 类

在 Pillow 中最重要的类就是 Image 类,而 Image 类被定义在同名的 Image 模块中。我们可以通过多种方式来创建 Image 类的实例,比如:从文件中加载图像、处理其它图像或从头开始创建图像。

要从文件中加载图像创建 Image 类的实例,可以使用 Image 模块的 open() 方法。

代码语言:javascript
复制
from PIL import Image

img = Image.open(r"./shiliu.jpg")
print(type(img))
# <class 'PIL.JpegImagePlugin.JpegImageFile'>

执行成功,Image.open() 函数会返回一个 Image 对象。如果图像文件打开错误,则会抛出 OSError 错误。

有了 Image 类的实例,接下来就可以使用实例的属性来检查文件内容。

代码语言:javascript
复制
print(img.format)
# JPEG
print(img.size)
# (1920, 1920)
print(img.mode)
# RGB

具体来说,Image 类实例的 3 个属性,分别是:

  • format: 返回图像文件的格式(JPG, PNG, BMP, None, etc.)。如果图像不是从文件中加载进来的,format 的值会返回 None;
  • size: 返回图像的尺寸。以二元组的形式返回图像的宽度和高度(以像素为单位);
  • mode: 返回图像的模式(L, RGB, CMYK, etc.)。L 为灰度图像,RGB 为真彩色图像,CMYK 为印刷图像;

Image 类实例有很多方法,如果想要查看图像,可以使用 show() 方法。

代码语言:javascript
复制
img.show()

show() 方法效率不高,因为它会将图像保存到临时文件中,并且调用你电脑中的图像程序来显示图像。如果你的电脑中没有安装显示图像的应用程序,show() 方法甚至不能工作。

References: https://www.liaoxuefeng.com/wiki/1016959663602400/1017785454949568

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 Pillow
  • 使用 Image 类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档