Python图像处理入门:详解如何使用PIL库导入和处理图片

一、PIL库简介

PIL库,全称Python Imaging Library,是由Fredrik Lundh开发的一个开源图像处理库。它提供了广泛的文件格式支持、强大的图像处理和图形绘制功能。PIL库的最新版本名为Pillow,是PIL的一个友好分支,增加了许多新功能和改进。

二、安装Pillow库

在开始之前,我们需要先安装Pillow库。可以使用Python的包管理工具pip进行安装:

pip install Pillow

安装完成后,我们就可以在Python代码中导入并使用Pillow库了。

三、导入图片

from PIL import Image

# 打开图片文件
image = Image.open("path/to/your/image.jpg")

# 显示图片
image.show()

四、图片基本信息获取

from PIL import Image

image = Image.open("path/to/your/image.jpg")

# 获取图片尺寸
width, height = image.size
print(f"Width: {width}, Height: {height}")

# 获取图片格式
format = image.format
print(f"Format: {format}")

# 获取图片颜色模式
mode = image.mode
print(f"Mode: {mode}")

五、图片格式转换

from PIL import Image

image = Image.open("path/to/your/image.jpg")

# 将图片转换为PNG格式
image.save("path/to/your/image.png", "PNG")

六、图片处理基础操作

  1. 裁剪图片
from PIL import Image

image = Image.open("path/to/your/image.jpg")

# 裁剪图片
# 参数为一个四元组,表示左上角和右下角的坐标
cropped_image = image.crop((50, 50, 200, 200))

# 显示裁剪后的图片
cropped_image.show()
  1. 缩放图片
from PIL import Image

image = Image.open("path/to/your/image.jpg")

# 缩放图片
# 参数为一个二元组,表示新的宽度和高度
resized_image = image.resize((800, 600))

# 显示缩放后的图片
resized_image.show()
  1. 旋转图片
from PIL import Image

image = Image.open("path/to/your/image.jpg")

# 旋转图片
# 参数为旋转角度
rotated_image = image.rotate(90)

# 显示旋转后的图片
rotated_image.show()

七、图片颜色处理

  1. 调整亮度
from PIL import Image, ImageEnhance

image = Image.open("path/to/your/image.jpg")

# 创建亮度增强对象
enhancer = ImageEnhance.Brightness(image)

# 调整亮度,参数为亮度因子
brighter_image = enhancer.enhance(1.5)

# 显示调整亮度后的图片
brighter_image.show()
  1. 调整对比度
from PIL import Image, ImageEnhance

image = Image.open("path/to/your/image.jpg")

# 创建对比度增强对象
enhancer = ImageEnhance.Contrast(image)

# 调整对比度,参数为对比度因子
contrast_image = enhancer.enhance(1.5)

# 显示调整对比度后的图片
contrast_image.show()
  1. 调整饱和度
from PIL import Image, ImageEnhance

image = Image.open("path/to/your/image.jpg")

# 创建饱和度增强对象
enhancer = ImageEnhance.Color(image)

# 调整饱和度,参数为饱和度因子
saturated_image = enhancer.enhance(1.5)

# 显示调整饱和度后的图片
saturated_image.show()

八、图片滤镜应用

Pillow库提供了多种内置滤镜,可以轻松实现各种视觉效果。

from PIL import Image, ImageFilter

image = Image.open("path/to/your/image.jpg")

# 应用模糊滤镜
blurred_image = image.filter(ImageFilter.BLUR)

# 显示模糊后的图片
blurred_image.show()

# 应用锐化滤镜
sharpened_image = image.filter(ImageFilter.SHARPEN)

# 显示锐化后的图片
sharpened_image.show()

# 应用边缘检测滤镜
edge_detected_image = image.filter(ImageFilter.FIND_EDGES)

# 显示边缘检测后的图片
edge_detected_image.show()

九、总结