Python图像滤镜处理:ImageFilter

由于成像系统、传输介质和记录设备等的不完善,数字图像在其形成、传输记录过程中往往会受到多种噪声的污染。另外,在图像处理的某些环节当输入的像对象并不如预想时也会在结果图像中引入噪声。因此就有了图像滤镜的概念。

图像滤镜:在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制。

Python中常用Pillow库提供的ImageFilter对图像进行滤镜处理, 包含模糊、平滑、锐化、边界增强等滤镜效果的处理。

常用的Python滤镜主要有BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH、SMOOTH_MORE、SHARPEN

具体定义及效果如下:

滤镜名称 含义
ImageFilter.BLUR 模糊滤镜
ImageFilter.SHARPEN 锐化滤镜
ImageFilter.SMOOTH 平滑滤镜
ImageFilter.SMOOTH_MORE 平滑滤镜(阀值更大)
ImageFilter.EMBOSS 浮雕滤镜
ImageFilter.FIND_EDGES 边界滤镜
ImageFilter.EDGE_ENHANCE 边界加强
ImageFilter.EDGE_ENHANCE_MORE 边界加强(阀值更大)
ImageFilter.CONTOUR 轮廓

具体使用如下:

from PIL import Image, ImageFilter


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径的jpg图像文件
image = image.filter(ImageFilter.BLUR)
#模糊滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/blur.JPG','jpeg')
#保存图片

如果希望针对一张地图制作多张不同滤镜效果的样本,则按一起处理并保存成不同标题的样本即可。

from PIL import Image, ImageFilter


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.BLUR)
#模糊滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/blur.JPG','jpeg')
#保存图片

image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.SHARPEN)
#锐化滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/sharpen.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.SMOOTH)
#平滑滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/smooth.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.SMOOTH_MORE)
#平滑滤镜(阀值更大)
image.save('/Users/alice/Documents/Develop/PythonCode/smoothmore.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.EMBOSS)
#浮雕滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/emboss.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.FIND_EDGES)
#边界滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/findedge.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.EDGE_ENHANCE)
#边界加强
image.save('/Users/alice/Documents/Develop/PythonCode/edgeenhance.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.EDGE_ENHANCE_MORE)
#边界加强(阀值更大)
image.save('/Users/alice/Documents/Develop/PythonCode/edgemore.JPG','jpeg')


image = Image.open('/Users/alice/Documents/Develop/PythonCode/imagetest.JPG')
# 打开指定路径下的jpg图像文件
image = image.filter(ImageFilter.CONTOUR)
#轮廓
image.save('/Users/alice/Documents/Develop/PythonCode/contour.JPG','jpeg')

原图为:

运行完成后生成的样本为:

具体每个图的效果为:

BOUR模糊:

sharpen锐化:

smooth平滑模糊:

smoothmore平滑模糊阈值更大:

emboss浮雕:

findedge边界滤镜:

edgehance边界增强:

edgehance_more边界增强更大阈值:

contour轮廓:

猜你喜欢

转载自blog.csdn.net/alice_tl/article/details/89290804