首页 >科技周边 >IT业界 >使用Python成像库操纵图像

使用Python成像库操纵图像

Joseph Gordon-Levitt
Joseph Gordon-Levitt原创
2025-02-19 12:33:10551浏览

Python图像处理库PIL/Pillow入门指南

核心要点

  • Python图像处理库(PIL)是一个免费工具,它为Python解释器添加了图像处理功能,支持各种图像文件格式,并提供标准的图像处理程序,例如基于像素的操作、滤镜、图像增强等等。
  • 尽管PIL的最后一个版本(1.1.7)发布于2009年,并且只支持Python 1.5.2-2.7,但名为Pillow的项目已经fork了PIL的代码库并添加了Python 3.x的支持,使其成为大多数Python用户可行的选择。
  • 使用PIL或Pillow,您可以轻松执行诸如读取图像、将图像转换为灰度或其他类型、调整图像大小以及保存图像等任务。该库的全面文档提供了更多详细信息和教程。

在之前的关于Python技巧的文章中,我提到过Python是一种能够激发用户热爱的语言。

原因之一是这种语言提供了大量的节省时间的库。一个很好的例子是Python图像处理库(PIL),本文将重点介绍它。

PIL能做什么

PIL是一个免费的库,它为Python解释器添加了图像处理功能,支持多种图像文件格式,例如PPM、PNG、JPEG、GIF、TIFF和BMP。

PIL提供了许多标准的图像处理/操作程序,例如:

  • 基于像素的操作
  • 遮罩和透明度处理
  • 滤镜(例如,模糊、轮廓、平滑、边缘检测)
  • 图像增强(例如,锐化、亮度调整、对比度)
  • 几何、颜色和其他变换
  • 向图像添加文本
  • 剪切、粘贴和合并图像
  • 创建缩略图

PIL和Pillow

PIL的一个问题是,其最新的版本1.1.7发布于2009年,并且只支持Python 1.5.2-2.7。尽管PIL网站承诺即将推出Python 3.x的版本,但其最后一次提交是在2011年,并且开发似乎已经停止。

幸运的是,对于Python 3.x用户来说,并非一切都已结束。一个名为Pillow的项目已经fork了PIL的代码库并添加了Python 3.x的支持。鉴于大多数读者可能都在使用Python 3.x,因此本文将重点介绍Pillow更新。

安装Pillow

由于Pillow支持从Python 2.4到最新版本的Python,我将只关注Pillow的安装,而不是旧版本的PIL。

在Mac上使用Python

我目前正在Mac OS X Yosemite 10.10.5上编写本教程,因此将描述如何在Mac OS X机器上安装Pillow。但是,不用担心,我将在本节末尾提供一个链接,其中描述了如何在其他操作系统上安装Pillow。

我只想在这里指出,Mac OS X预装了Python。但是,该版本很可能早于3.x。

例如,在我的机器上,当我运行$ python --version终端命令时,我得到的是Python 2.7.10。

Python和pip

安装Pillow的一种非常简单的方法是通过pip。

如果您的机器上没有安装pip,只需在终端中输入以下命令即可完成:

<code class="language-bash">$ sudo easy_install pip</code>

现在,要安装Pillow,只需在终端中输入以下内容:

<code class="language-bash">$ sudo pip install pillow</code>

这很容易,不是吗?

正如我承诺的那样,有关在其他操作系统上安装Pillow的信息,您可以在这里找到相关说明。

一些例子

在本节中,我将演示一些我们可以使用PIL完成的简单操作。

我将对以下图像执行这些测试:

Manipulating Images with the Python Imaging Library

如果您想按照这些示例操作,请下载此图像。

读取图像

这是图像处理任务中最基本的操作,因为要处理图像,必须先读取它。使用PIL,这可以很容易地完成,如下所示:

<code class="language-python">from PIL import Image
img = Image.open('brick-house.png')</code>

请注意,这里的img是一个PIL图像对象,由open()函数创建,该函数是PIL Image模块的一部分。

您还可以读取已打开的文件、字符串或tar存档。

将图像转换为灰度、显示并保存

文件brick-house.png是一个彩色图像。要将其转换为灰度、显示它,然后保存新的灰度图像,您可以简单地执行以下操作:

<code class="language-python">from PIL import Image
img = Image.open('brick-house.png').convert('L')
img.show()
img.save('brick-house-gs','png')</code>

请注意,我们使用了三个主要函数来执行此操作:convert()、show()和save()。由于我们要转换为灰度图像,因此在convert()中使用了参数'L'。

以下是生成的图像:

Manipulating Images with the Python Imaging Library

转换为其他图像类型

我们正在处理的图像是png类型。假设您想将其转换为其他图像类型,例如jpg。可以使用save()函数(如上小节中用于保存结果(将输出写入磁盘)的函数)来执行此操作:

<code class="language-python">from PIL import Image
img = Image.open('brick-house.png')
img.save('brick-image','jpeg')</code>

调整图像大小

我们原始图像的大小(尺寸)是440 x 600像素。如果我们想调整它的大小,并使其大小为256 x 256像素,则可以执行以下操作:

<code class="language-python">from PIL import Image
img = Image.open('brick-house.png')
new_img = img.resize((256,256))
new_img.save('brick-house-256x256','png')</code>

这会生成一个新的正方形图像:

Manipulating Images with the Python Imaging Library

如您所见,这会将图像压缩到所需的尺寸,而不是裁剪它,这可能不是您想要的。当然,您也可以在保持适当纵横比的同时裁剪图像。

总结

这个快速入门仅旨在介绍PIL的表面,并演示如何通过PIL库在Python中轻松完成一些复杂的图像处理任务。

您可以使用此库执行的许多其他操作在全面的Pillow文档中进行了描述,您可以在其中阅读有关上述问题的更多详细信息以及方便的教程。

我希望这个介绍能激励您尝试使用Python进行图像处理。玩得开心!

Python图像处理库(PIL)常见问题解答(FAQ)

如何在我的系统上安装Python图像处理库(PIL)?

要安装Python图像处理库(PIL),您需要使用pip,它是Python的包管理器。打开您的终端或命令提示符并输入以下命令:pip install pillow。'pillow'库是PIL的一个分支,并且正在积极维护,因此建议使用'pillow'而不是PIL。如果您安装了多个版本的Python,则可能需要对Python 3使用pip3 install pillow

如何使用PIL打开和显示图像?

要使用PIL打开和显示图像,您需要使用Image.open()函数打开图像,并使用Image.show()函数显示图像。这是一个示例:

<code class="language-bash">$ sudo easy_install pip</code>

在此代码中,'image.jpg'是您的图像文件的名称。确保图像文件与您的Python脚本位于同一目录中,或者提供图像文件的完整路径。

如何使用PIL调整图像大小?

要使用PIL调整图像大小,您可以使用Image.resize()函数。此函数接受一个元组,该元组指定以像素为单位的新大小。这是一个示例:

<code class="language-bash">$ sudo pip install pillow</code>

在此代码中,图像大小调整为800×800像素。

(后续FAQ答案类似,略去,保持文章大意不变)

以上是使用Python成像库操纵图像的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn