Python Pillow - 概述



在当今的数字世界中,我们经常遇到大量的数字图像。如果我们使用Python编程语言,它提供了许多图像处理库,可以为数字图像添加图像处理功能。

一些最常见的图像处理库包括:OpenCVScikit-image、Pillow、Mahotas等等。但是,在本教程中,我们只关注Pillow库,并将尝试探索此模块的各种功能。

什么是 Pillow?

Pillow 或者说 Python Imaging Library (PIL) 是由 Jeffrey A. Clark 及贡献者开发的分支,是一个功能强大的 Python 库,用于处理数字图像和图像处理。它建立在 Python 图像库 (PIL) 之上,并提供了一系列用于处理图像的功能。它提供了广泛的功能,用于以各种格式打开、处理和保存图像。Pillow 是在涉及图像处理、计算机视觉、Web 开发、图形设计等应用中广泛使用的工具。

Pillow 提供了广泛的图像处理工具和函数,允许您执行以下任务:

  • 打开和加载图像 - Pillow 允许我们打开和加载各种格式的图像,以便进行处理。
  • 调整大小和缩放 - 我们可以将图像调整到特定尺寸,放大或缩小,以及生成缩略图。
  • 裁剪 - 图像裁剪涉及去除图像中不需要的部分,以关注特定区域。
  • 旋转和翻转 - 可以旋转图像以校正方向或出于创意目的。我们还可以水平或垂直翻转图像。
  • 颜色调整 - Pillow 提供了调整图像属性的函数,包括亮度、对比度和色彩平衡。
  • 滤镜和效果 - 图像滤镜涉及应用模糊、锐化、边缘检测等滤镜和各种效果,以增强或修改图像的外观。
  • 文本和绘图 - 我们可以向图像添加文本、形状和绘图,这对于注释和标记很有用。
  • 颜色模式转换 - Pillow 支持在不同的颜色模式(如 RGB、灰度和 CMYK)之间转换图像。
  • 直方图均衡化 - 这是一种通过重新分配像素值来增强图像对比度的技术。
  • 图像滤镜 - 我们可以将自定义卷积滤镜应用于图像,从而实现高级图像处理操作。
  • 几何变换 - Pillow 支持仿射变换和透视变换等几何变换,用于校正图像变形等任务。
  • 合并和合成 - 我们可以合并多个图像或叠加图像以创建合成图像或视觉效果。
  • 元数据处理 - Pillow 允许我们访问和修改图像元数据,例如 EXIF 和 ICC 配置文件,这对于数据提取和管理很有用。
  • 数据访问和分析 - 我们可以访问和处理低级别的像素数据,从而实现更高级的图像处理和分析任务。

为什么选择 Pillow?

Pillow 是 Python 中首选的图像处理工具,因为它:

  • 图像处理能力 - Pillow 提供了一套全面的图像处理工具,例如打开、编辑、增强和保存图像。它支持各种图像格式,使其能够灵活地处理不同类型的图像数据。
  • 易于使用 - Python 作为一种高级编程语言,以其可读性和简单性而闻名。Pillow 继承了这些特性,使开发人员即使在图像处理经验很少的情况下也能轻松地处理图像。
  • 平台独立性 - Python 是平台无关的,Pillow 也是如此。这意味着我们可以在不同的操作系统上使用 Pillow 来处理图像,而无需担心兼容性问题。
  • 丰富的文档 - Python 和 Pillow 拥有大量的文档、教程和支持性社区,这简化了新手的学习曲线,并为经验丰富的开发人员提供了丰富的资源。
  • 与其他库的集成 - Python 可以将 Pillow 与其他流行的库和框架(如NumPyOpenCV)无缝集成,以进行高级图像处理和计算机视觉任务。
  • 开源 - Python 和 Pillow 都是开源的,这意味着它们可以免费使用,并且由庞大的贡献者社区不断改进。

基本示例

这是一个基本的示例,可以帮助您开始使用 Pillow。

打开和显示图像

此示例演示如何在 Python Pillow 中打开和显示图像。

from PIL import Image

#Load an image
loaded_image = Image.open("Images/logo-w.png")

# Display the image
loaded_image.show()

输出

overview_ex1

上述代码将从指定路径加载图像,并使用系统上的默认图像查看器显示它。

广告