Python图像处理入门:Pillow库

pillowpython 中常用的图像处理库,适合实现裁剪、缩放、旋转等基础操作。安装使用 pip install pillow 并导入 image 类即可开始操作,常见问题包括路径错误和格式不支持。主要功能包括 resize() 调整尺寸、crop() 裁剪区域、rotate() 旋转图像、transpose() 翻转图像。颜色转换可通过 convert() 方法实现,如转灰度图或去除透明通道。添加水印或文字需使用 imagedraw 和 imagefont 模块,通过 draw.text() 绘制文字并指定字体、颜色和位置。 pillow 功能全面且易于上手,适合日常图像处理需求。

Python图像处理入门:Pillow库

Pillow 是 python 中最常用的图像处理库之一,功能强大又简单易用。如果你刚开始接触图像处理,或者只是想快速实现一些基本操作,比如裁剪、缩放、旋转图片,Pillow 基本都能满足你的需求。

Python图像处理入门:Pillow库


安装与基本使用

在使用 Pillow 之前,首先要确保它已经安装好了。可以通过 pip 安装:

Python图像处理入门:Pillow库

pip install pillow

安装完成后,导入 PIL 模块中的 Image 类,就可以开始操作图像了。比如打开一张图片只需要这样:

立即学习Python免费学习笔记(深入)”;

from PIL import Image img = Image.open('example.jpg')

如果路径没问题,这段代码就会加载图片文件。你可以调用 .show() 方法预览图片,或者用 .save() 把修改后的图片保存下来。

Python图像处理入门:Pillow库

常见问题:

  • 文件路径写错会导致无法打开图片
  • 不支持的格式也会报错,Pillow 支持常见的 JPEG、PNG、GIF 等格式,但不包括某些专业格式如 PSD

图像的基本操作

Pillow 提供了一些非常实用的基础图像处理方法,适合日常使用。以下是一些最常见的操作:

  • 调整尺寸:使用 resize() 方法可以改变图像大小,参数是一个包含宽高的元组。
  • 裁剪图像:用 crop() 方法传入一个四元组(左、上、右、下)来指定裁剪区域。
  • 旋转图像:调用 rotate(angle) 可以按指定角度旋转图片,默认是逆时针方向。
  • 翻转图像:transpose(Image.FLIP_LEFT_RIGHT) 或 transpose(Image.FLIP_TOP_BOTTOM) 可以左右或上下翻转。

举个例子,如果你想把一张图缩小一半并保存:

resized_img = img.resize((img.width // 2, img.height // 2)) resized_img.save('resized_example.jpg')

这些操作都很直观,关键是理解每个函数的参数含义和使用方式。


图像模式与颜色转换

Pillow 支持多种图像模式,比如 RGB(彩色)、L(灰度)、RGBA(带透明通道)等。有时候你需要将图像转换成特定模式才能进行后续处理。

比如将图片转为黑白(灰度):

gray_img = img.convert('L') gray_img.save('gray_example.jpg')

这个操作常用于图像识别前的预处理。还有一种情况是 PNG 图片带有透明通道(RGBA),而你希望去掉透明背景,可以转成 RGB:

if img.mode == 'RGBA':     img = img.convert('RGB')

这部分操作虽然不是特别复杂,但容易被忽略,尤其是处理不同来源的图片时。


添加水印和叠加文字

给图片加水印或文字也是常见的需求。Pillow 的 ImageDraw 和 ImageFont 模块可以实现这些功能。

基本步骤如下:

  1. 创建绘图对象 draw = ImageDraw.Draw(img)
  2. 准备字体 font = ImageFont.truetype(“arial.ttf”, size=36)
  3. 使用 draw.text() 在指定位置绘制文字

示例代码:

from PIL import ImageDraw, ImageFont  draw = ImageDraw.Draw(img) font = ImageFont.truetype("arial.ttf", 36) draw.text((10, 10), "Sample Watermark", fill=(255,255,255), font=font) img.save('watermarked.jpg')

注意几点:

  • 如果没有指定字体,系统可能会默认使用一种基础字体,效果可能不太好
  • 文字颜色要用三元组表示(R, G, B)
  • 位置坐标是从左上角开始的像素值

基本上就这些内容了。Pillow 虽然是一个入门级的图像处理工具,但它的功能已经足够应对大多数日常任务。对于更复杂的图像处理,比如滤波、边缘检测等,可以结合 numpyopencv 使用。不过对新手来说,先掌握 Pillow 是个不错的选择。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享