欢迎访问宙启技术站
智能推送

Python图像处理函数及其使用:Pillow库的常用函数介绍

发布时间:2023-06-02 04:34:29

Python中图像处理的库有很多,其中比较常用的是Pillow库。这个库是Python Imaging Library的升级版,提供了更多的图像处理函数和更好的性能。

在本文中,我们将介绍Pillow库中比较常用的函数及其使用方法。

1. 打开和保存图像

Pillow库提供了Image模块来处理图像。可以使用open()函数打开一张图像,使用save()函数保存一张图像。例如:

from PIL import Image

# 打开图像
im = Image.open("image.jpg")

# 保存图像
im.save("new_image.jpg")

2. 图像缩放

Pillow库中提供了resize()函数来缩放图像。可以将图像缩放成指定大小或按比例缩放。例如:

from PIL import Image

# 打开图像
im = Image.open("image.jpg")

# 缩放到指定大小
im_resized = im.resize((300, 200))

# 按比例缩放
im_resized = im.resize((500, 0))

3. 图像裁剪

Pillow库中的crop()函数可以进行图像裁剪。crop()函数接受一个四元组作为参数,分别指定左上角和右下角的坐标。例如:

from PIL import Image

# 打开图像
im = Image.open("image.jpg")

# 裁剪图像
im_cropped = im.crop((100, 100, 300, 300))

4. 图像旋转

Pillow库中的rotate()函数可以进行图像旋转。rotate()函数接受一个角度作为参数,正值表示顺时针旋转,负值表示逆时针旋转。例如:

from PIL import Image

# 打开图像
im = Image.open("image.jpg")

# 顺时针旋转45度
im_rotated = im.rotate(45)

# 逆时针旋转90度
im_rotated = im.rotate(-90)

5. 图像反转

Pillow库中的transpose()函数可以进行图像反转。transpose()函数接受一个字符串作为参数,可以是"FLIP_LEFT_RIGHT"表示左右翻转,"FLIP_TOP_BOTTOM"表示上下翻转,或者"ROTATE_90"、"ROTATE_180"、"ROTATE_270"表示旋转90度、180度、270度。例如:

from PIL import Image

# 打开图像
im = Image.open("image.jpg")

# 左右翻转
im_flipped = im.transpose(Image.FLIP_LEFT_RIGHT)

# 上下翻转
im_flipped = im.transpose(Image.FLIP_TOP_BOTTOM)

# 旋转90度
im_flipped = im.transpose(Image.ROTATE_90)

6. 图像滤镜

Pillow库中的ImageFilter模块提供了很多图像滤镜,可以通过filter()函数来使用这些滤镜。例如:

from PIL import Image, ImageFilter

# 打开图像
im = Image.open("image.jpg")

# 应用模糊滤镜
im_blur = im.filter(ImageFilter.BLUR)

# 应用边缘增强滤镜
im_edges = im.filter(ImageFilter.FIND_EDGES)

7. 绘制图像

Pillow库中的ImageDraw模块提供了绘制图像的函数。可以使用text()函数来添加文本,使用line()函数来画线,使用rectangle()函数来画矩形,以此类推。例如:

from PIL import Image, ImageDraw, ImageFont

# 打开图像
im = Image.open("image.jpg")

# 创建一个绘制对象
draw = ImageDraw.Draw(im)

# 添加文本
font = ImageFont.truetype("arial.ttf", 36)
draw.text((100, 100), "Hello, world!", font=font)

# 画线
draw.line((0, 0, 200, 200), fill=128)

# 画矩形
draw.rectangle((100, 100, 300, 300), outline=(255, 0, 0))

# 显示图像
im.show()

总结

以上就是Pillow库中比较常用的函数及其使用方法。除此之外,Pillow库还提供了很多其他的图像处理函数,可以根据需要自行了解和使用。