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")
六、图片处理基础操作
- 裁剪图片
from PIL import Image
image = Image.open("path/to/your/image.jpg")
# 裁剪图片
# 参数为一个四元组,表示左上角和右下角的坐标
cropped_image = image.crop((50, 50, 200, 200))
# 显示裁剪后的图片
cropped_image.show()
- 缩放图片
from PIL import Image
image = Image.open("path/to/your/image.jpg")
# 缩放图片
# 参数为一个二元组,表示新的宽度和高度
resized_image = image.resize((800, 600))
# 显示缩放后的图片
resized_image.show()
- 旋转图片
from PIL import Image
image = Image.open("path/to/your/image.jpg")
# 旋转图片
# 参数为旋转角度
rotated_image = image.rotate(90)
# 显示旋转后的图片
rotated_image.show()
七、图片颜色处理
- 调整亮度
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()
- 调整对比度
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()
- 调整饱和度
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()