Pillow
参考Pillow
简介
PIL( Python Imaging Library)是 Python 的第三方图像处理库,由于其功能丰富,API 简洁易用,因此深受好评。
自 2011 年以来,由于 PIL 库更新缓慢,目前仅支持 Python 2.7 版本,这明显无法满足 Python3 版本的使用需求。于是一群 Python 社区的志愿者(主要贡献者:Alex Clark 和 Contributors)在 PIL 库的基础上开发了一个支持 Python3 版本的图像处理库,它就是 Pillow。
Pillow 不仅是 PIL 库的“复制版”,而且它又在 PIL 库的基础上增加了许多新的特性。Pillow 发展至今,已经成为了比 PIL 更具活力的图像处理库。
Pillow 的初衷只是想作为 PIL 库的分支和补充,如今它已是“青出于蓝而胜于蓝”。
Pillow 是 Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像、调整图像大小和图像颜色处理等。与 Pillow 相比,OpenCV 和 Scikit-image 的功能更为丰富,所以使用起来也更为复杂,主要应用于机器视觉、图像分析等领域,比如众所周知的“人脸识别”应用。
Pillow库特点.Pillow 库作为图像处理的常用库,主要有以下三大特点:
- 支持广泛的文件格式:Pillow 支持广泛的图像格式,比如 “jpeg”,”png”,”bmp”,”gif”,”ppm”,”tiff” 等。同时,它也支持图像格式之间的相互转换。总之, Pillow 几乎能够处理任何格式的图像。
- 提供丰富的功能:Pillow 提供了丰富的图像处理功能,可概括为两个方面:图像归档,图像处理
- 配合GUI工具使用:Pillow 库可以配合 Python GUI(图形用户界面)工具 Tkinter 一起使用
除上述特点之外,Pillow 库还能实现一些较为复杂的图像处理操作,比如给图像添加水印、合成 GIF 动态效果图等等。
下载与安装
注意,PIL 库与 Pillow 库不允许在同一环境中共存,如果您之前安装了 PIL 库,请卸载后,再安装 Pillow。
pip install pillow |
打开、保存、显示图片
from PIL import Image |
- mode 属性为图片的模式,RGB 代表彩色图像,L 代表光照图像也即灰度图像等
- size 属性为图片的大小(宽度,长度)
- format 属性为图片的格式,如常见的 PNG、JPEG 等
转换图片模式
image.show() |
任何支持的图片模式都可以直接转为彩色模式或者灰度模式,但是,若是想转化为其他模式,则需要借助一个中间模式(通常是彩色)来进行过转
通道分离与合并
r, g, b = image.split() |
彩色图像可以分离出 R、G、B 通道,但若是灰度图像,则返回灰度图像本身。然后,可以将 R、G、B 通道按照一定的顺序再合并成彩色图像。
图片裁剪、旋转和改变大小
box = (100, 100, 300, 300) |
通过定义一个 4 元组,依次为左上角 X 坐标、Y 坐标,右下角 X 坐标、Y 坐标,可以対原图片的某一区域进行裁剪,然后进行一定处理后可以在原位置粘贴回去。
im = image.resize((300, 300)) |
像素值操作
out = image.point(lambda i: i * 1.2) # 对每个像素值乘以 1.2 |
i > 128 and 255,当 i <= 128 时,返回 False 也即 0,;反之返回 255 。
和 Numpy 数组之间的转化
array = np.array(image) |