手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Python图像处理之Pillow-ImageFilter

[日期:2020-01-27] 来源:Linux社区  作者:FloatDreamed [字体: ]

ImageFilter:Python中的图像滤波,主要对图像进行平滑、锐化、边界增强等滤波处理。

图像滤波:在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。

存在目的:由于成像系统、传输介质和记录设备等的不完善,数字图像在其形成、传输记录过程中往往会受到多种噪声的污染。另外,在图像处理的某些环节当输入的像对象并不如预想时也会在结果图像中引入噪声。要构造一种有效抑制噪声的滤波器必须考虑两个基本问题:能有效地去除目标和背景中的噪声;同时,能很好地保护图像目标的形状、大小及特定的几何和拓扑结构特征。

滤波器主要包括如下种类:

BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH、SMOOTH_MORE、SHARPEN(GaussianBlur、UnsharpMask、Kernel、RankFilter、MedianFilter、MinFilter、MaxFilter、ModeFilter)

Python图像处理之Pillow-ImageFilter

上原图作为参照:

1.BLUR:模糊滤波

from PIL import Image, ImageFilter
im = Image.open(r"linuxidc.com.png")
bluF = im.filter(ImageFilter.BLUR)
bluF.show()

效果图:

Python图像处理之Pillow-ImageFilter

2.CONTOUR:轮廓滤波

from PIL import Image, ImageFilter
im = Image.open(r"linuxidc.com.png")
conF = im.filter(ImageFilter.CONTOUR)
conF.show()

效果图:

Python图像处理之Pillow-ImageFilter


3.DETAIL:细节滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
detF =  im.filter(ImageFilter.DETAIL)
detF.show()

效果图:

Python图像处理之Pillow-ImageFilter

4.EDGE_ENHANCE:边界增强滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
eeF =  im.filter(ImageFilter.EDGE_ENHANCE)
eeF.show()

效果图:

Python图像处理之Pillow-ImageFilter

5.EDGE_ENHANCE_MORE:深度边缘增强滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
eemF = im.filter(ImageFilter.EDGE_ENHANCE_MORE)
eemF.show()

效果图:

Python图像处理之Pillow-ImageFilter

6.EMBOSS:浮雕滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
embF = im.filter(ImageFilter.EMBOSS)
embF.show()

效果图:

Python图像处理之Pillow-ImageFilter 

7.FIND_EDGES:寻找边界滤波(找寻图像的边界信息)

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
fdeF = im.filter(ImageFilter.FIND_EDGES)
fdeF.show()

效果图:

Python图像处理之Pillow-ImageFilter

8.SMOOTH:平滑滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
smoF = im.filter(ImageFilter.SMOOTH)
smoF.show()


效果图:

Python图像处理之Pillow-ImageFilter

9.SMOOTH_MORE:深度平滑滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
smomF = im.filter(ImageFilter.SMOOTH_MORE)
smomF.show()

效果图:

Python图像处理之Pillow-ImageFilter

10.SHARPEN:锐化滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
shaF = im.filter(ImageFilter.SHARPEN)
shaF.show()

效果图:

Python图像处理之Pillow-ImageFilter

11.GaussianBlur:高斯模糊

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
gbF = im.filter(ImageFilter.GaussianBlur(radius=10))
gbF.show()

①radius:模糊半径

效果图:

Python图像处理之Pillow-ImageFilter

12.UnsharpMask:反锐化掩码滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
umF = im.filter(ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3))
umF.show()

①radius:模糊半径

②percent:反锐化强度(百分比)

③threshold:被锐化的最小亮度

效果图:

Python图像处理之Pillow-ImageFilter

13.Kernel:卷积核滤波

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
kF = im.filter(ImageFilter.Kernel((3, 3), (1, 2, 2, 2, 0, 0, 1, 2, 2), scale=None, offset=10))
kF.show()

①size:核的大小(width, height)

②kernel:核权值序列如3*3的为(1, 2, 2, 2, 0, 0, 1, 2, 2)

③scale:缩放因子

④offset:偏移量(使用的话,则将该值加到缩放后的结果上)

效果图:

Python图像处理之Pillow-ImageFilter

14.RankFilter:排序滤波

对于输入图像的每个像素点,等级滤波器根据像素值,在(size,size)的区域中对所有像素点进行排序,然后拷贝对应等级的值存储到输出图像中

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
rfF = im.filter(ImageFilter.RankFilter(5, 8))
rfF.show()

①size:核的大小(width, height)

②rank:如例子,在每个像素点为中心的5x5区域25个像素点中选择排序第8位的像素作为新的值

效果图:

Python图像处理之Pillow-ImageFilter 

15.MinFilter:最小值滤波器

对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝最小的像素值存储到输出图像中

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
minF = im.filter(ImageFilter.MinFilter(5))
minF.show()

①size:核的大小(size=N)

效果图:

Python图像处理之Pillow-ImageFilter

16.MedianFilter:中值滤波

对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝中值对应的像素值存储到输出图像中

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
medF = im.filter(ImageFilter.MedianFilter(5))
medF.show()

①size:核的大小(size=N)

效果图:

Python图像处理之Pillow-ImageFilter

17.MaxFilter:最大值滤波

对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝最大的像素值存储到输出图像中

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
maxF = im.filter(ImageFilter.MaxFilter(5))
maxF.show()

①size:核的大小(size=N)

效果图:

Python图像处理之Pillow-ImageFilter 

18.ModeFilter:模式滤波

对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝出现次数最多的像素值存储到输出图像中。如果没有一个像素值出现过两次极其以上,则使用原始像素值。

from PIL import Image, ImageFilter
im =  Image.open(r"linuxidc.com.png")
modF = im.filter(ImageFilter.ModeFilter(5))
modF.show()

①size:核的大小(size=N)

Python图像处理之Pillow-ImageFilter

更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2020-01/162139.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款