目录
如何在我的系统上安装Python图像处理库(PIL)?
如何使用PIL打开和显示图像?
如何使用PIL调整图像大小?
首页 科技周边 IT业界 使用Python成像库操纵图像

使用Python成像库操纵图像

Feb 19, 2025 pm 12:33 PM

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,只需在终端中输入以下命令即可完成:

$ sudo easy_install pip

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

$ sudo pip install pillow

这很容易,不是吗?

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

一些例子

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

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

Manipulating Images with the Python Imaging Library

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

读取图像

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

from PIL import Image
img = Image.open('brick-house.png')

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

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

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

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

from PIL import Image
img = Image.open('brick-house.png').convert('L')
img.show()
img.save('brick-house-gs','png')

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

以下是生成的图像:

Manipulating Images with the Python Imaging Library

转换为其他图像类型

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

from PIL import Image
img = Image.open('brick-house.png')
img.save('brick-image','jpeg')

调整图像大小

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

from PIL import Image
img = Image.open('brick-house.png')
new_img = img.resize((256,256))
new_img.save('brick-house-256x256','png')

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

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()函数显示图像。这是一个示例:

$ sudo easy_install pip

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

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

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

$ sudo pip install pillow

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

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

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

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

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1600
29
PHP教程
1502
276
ai不断地'幻觉”,但是有一个解决方案 ai不断地'幻觉”,但是有一个解决方案 Jul 07, 2025 am 01:26 AM

大型技术实验人工智能(AI)的主要关注点并不是它可能主导人类。真正的问题在于大语言模型(LLMS)的持续不准确性,例如Open AI的Chatgpt,Google的Gemini和

为什么AI会更频繁地进行Hallucin,我们如何停止它? 为什么AI会更频繁地进行Hallucin,我们如何停止它? Jul 08, 2025 am 01:44 AM

人工智能(AI)越先进,它越倾向于“幻觉”并提供虚假或不准确的信息。Openai的研究是其最新和强大的推理模型(O3和O4-Mini)的研究,这对HH进行了研究。

在网络攻击M&S和合作社的网络攻击背后捕获了狩猎者的逮捕 在网络攻击M&S和合作社的网络攻击背后捕获了狩猎者的逮捕 Jul 11, 2025 pm 01:36 PM

英国国家犯罪局(NCA)逮捕了四名涉嫌参与针对Marks和Spencer(M&S),合作社和Harrods的网络攻击的人

研究表明,当问题变得太困难时 研究表明,当问题变得太困难时 Jul 07, 2025 am 01:02 AM

人工智能(AI)推理模型并不像看起来那样能力。实际上,根据Apple的研究人员的说法,当任务变得过于复杂时,它们的表现会完全崩溃。

Quantum Pryptography现在是网络安全领导者的首要思想 Quantum Pryptography现在是网络安全领导者的首要思想 Jul 11, 2025 pm 01:38 PM

Quantum加密术已成为网络安全领导者的重中之重,但最近的研究表明,某些组织并没有以其要求对待威胁。QuantumComputers最终能够解决T

勒索软件攻击具有巨大的财务影响–但是Ciso担心仍然阻止公司付款 勒索软件攻击具有巨大的财务影响–但是Ciso担心仍然阻止公司付款 Jul 12, 2025 am 12:59 AM

根据最近的一项调查,勒索软件攻击带来了450万美元的平均恢复成本,该调查还发现,过去一年中,许多企业受到了恶意软件的影响。

Red Hat可以让开发人员自由访问Rhel–您需要知道的 Red Hat可以让开发人员自由访问Rhel–您需要知道的 Jul 13, 2025 am 12:49 AM

Red Hat推出了一个新的自助服务平台,旨在更容易访问其开发人员计划。红帽企业Linux for Business Developers Initiative旨在帮助开发团队建立,测试和部署

不要选择错误的网络团队 不要选择错误的网络团队 Jul 08, 2025 am 01:39 AM

投资新网站或数字平台对于任何企业来说都是关键的。无论您是在开设一家初创公司,重建旧网站还是通过新的电子商务商店扩大覆盖范围,您选择使您的愿景栩栩如生的团队可以做到或

See all articles