📅  最后修改于: 2023-12-03 15:04:19.908000             🧑  作者: Mango
Python Pillow是Python中最流行的图像处理库之一。在本文中,我们将探讨如何使用Python Pillow给图片添加不同类型的滤镜。我们将使用Python 3和Python Pillow 7.1.2版本。让我们开始吧!
首先,我们需要在我们的系统上安装Python Pillow库。你可以使用以下命令来安装Python Pillow:
pip install pillow
在这个例子中,我们将使用一张图片来展示如何向图像添加滤镜。你可以在这个 链接 下载这张图片。将图片保存在你的项目文件夹中。那么,我们可以使用以下代码来加载这张图片:
from PIL import Image
image = Image.open("lena.png")
现在,我们已经加载了图片,让我们探索如何添加滤镜。 Python Pillow库提供了许多内置的滤镜函数(函数文档在此):
对于此示例,我们将使用以下滤镜:
模糊滤镜是一种模糊图像的方法。模糊图像的效果更柔和,使它更难识别。我们将使用 Pillow 库中的 blur 函数来实现模糊效果。以下是一个实现的代码示例:
from PIL import ImageFilter
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred.png")
这将创建一个新的图像,其中像素已被模糊处理。保存的图像将命名为 “blurred.png”。
高斯滤镜与模糊滤镜类似,但会产生更柔和的效果。带有高斯分布的卷积核用于模糊图像中的每个像素。以下是高斯模糊滤镜的实现代码:
blurred_image = image.filter(ImageFilter.GaussianBlur(radius=10))
blurred_image.save("gaussian_blurred.png")
这应该会创建一个新的图像,其中像素被柔化,产生了更加柔和的效果。保存的图像将命名为 “gaussian_blurred.png”。
水平翻转滤镜可以将图像水平翻转。以下是水平翻转滤镜的实现代码:
flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT)
flipped_image.save("flipped.png")
这将创建一个新的图像,其中像素已经水平翻转,保存的图像将命名为 “flipped.png”。
竖直翻转滤镜可以将图像竖直翻转。以下是竖直翻转滤镜的实现代码:
flipped_image = image.transpose(Image.FLIP_TOP_BOTTOM)
flipped_image.save("flipped.png")
这将创建一个新的图像,其中像素已经竖直翻转,保存的图像将命名为 “flipped.png”。
边缘检测滤镜可用于检查图像中的边缘并将其强调。以下是边缘检测滤镜的实现代码:
from PIL import ImageFilter
edged_image = image.filter(ImageFilter.FIND_EDGES)
edged_image.save("edged.png")
这将创建一个新的图像,其中像素已经用霓虹灯的边缘强调,保存的图像将命名为 “edged.png”。
现在,我们已经看到了不同类型的滤镜,接下来我们将在单个程序中运行它们。将以下代码保存为 Python 脚本并运行它:
from PIL import Image, ImageFilter
# Open image
image = Image.open("lena.png")
# Apply different filters
blurred_image = image.filter(ImageFilter.BLUR)
gaussian_blurred_image = image.filter(ImageFilter.GaussianBlur(radius=5))
flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT)
edged_image = image.filter(ImageFilter.FIND_EDGES)
# Save the new images
blurred_image.save("blurred.png")
gaussian_blurred_image.save("gaussian_blurred.png")
flipped_image.save("flipped.png")
edged_image.save("edged.png")
程序将打开 “lena.png” 作为原始图像,然后将不同类型的滤镜应用到该图像中。在应用每种滤镜后,该滤镜将保存到一个新的图像文件中,以便比较原始图像和新图像的效果。
在此示例中,我们已经看到了如何使用 Python Pillow 给图像添加不同类型的滤镜。这是使用 Python 处理图像时非常有用的示例。使用下面的代码片段,你可以尝试使用 Python Pillow 库添加其他类型的滤镜。