Python图像滤波处理操作示例【基于ImageFilter类】
本文实例讲述了python图像滤波处理操作。分享给大家供大家参考,具体如下:
在图像处理中,经常需要对图像进行平滑、锐化、边界增强等滤波处理。在使用pil图像处理库时,我们通过image类中的成员函数filter()
来调用滤波函数对图像进行滤波,而滤波函数则通过imagefilter类来定义的。
下面先直接看一个样例:
#-*- coding: utf-8 -*- from pil import image from pil import imagefilter def image_filters_test(): im = image.open("lena.jpg") #预定义的图像增强滤波器 im_blur = im.filter(imagefilter.blur) im_contour = im.filter(imagefilter.contour) im_min = im.filter(imagefilter.minfilter(3)) im.show() im_blur.show() im_contour.show() im_min.show() return image_filters_test()
imagefilter类中预定义了如下滤波方法:
• blur:模糊滤波
• contour:轮廓滤波
• detail:细节滤波
• edge_enhance:边界增强滤波
• edge_enhance_more:边界增强滤波(程度更深)
• emboss:浮雕滤波
• find_edges:寻找边界滤波
• smooth:平滑滤波
• smooth_more:平滑滤波(程度更深)
• sharpen:锐化滤波
• gaussianblur(radius=2):高斯模糊
>radius指定平滑半径。
• unsharpmask(radius=2, percent=150, threshold=3):反锐化掩码滤波
>radius指定模糊半径;
>percent指定反锐化强度(百分比);
>threshold控制被锐化的最小亮度变化。
• kernel(size, kernel, scale=none, offset=0):核滤波
当前版本只支持核大小为3x3和5x5的核大小,且图像格式为“l”和“rgb”的图像。
>size指定核大小(width, height);
>kernel指定核权值的序列;
>scale指定缩放因子;
>offset指定偏移量,如果使用,则将该值加到缩放后的结果上。
• rankfilter(size, rank):排序滤波
>size指定滤波核的大小;
>rank指定选取排在第rank位的像素,若大小为0,则为最小值滤波;若大小为size * size / 2则为中值滤波;若大小为size * size - 1则为最大值滤波。
• medianfilter(size=3):中值滤波
>size指定核的大小
• minfilter(size=3):最小值滤波器
>size指定核的大小
• maxfilter(size=3):最大值滤波器
>size指定核的大小
• modefilter(size=3):波形滤波器
选取核内出现频次最高的像素值作为该点像素值,仅出现一次或两次的像素将被忽略,若没有像素出现两次以上,则保留原像素值。
>size指定核的大小
原图lena.jpg如下:
上例的滤波处理结果如下:
更多关于python相关内容可查看本站专题:《python数学运算技巧总结》、《python图片操作技巧总结》、《python数据结构与算法教程》、《python函数使用技巧总结》、《python字符串操作技巧汇总》及《python入门与进阶经典教程》
希望本文所述对大家python程序设计有所帮助。
上一篇: django主动抛出403异常的方法详解
下一篇: 高清CG插画3D版,不是一般的帅。
推荐阅读
-
Python基于property实现类的特性操作示例
-
Python处理菜单消息操作示例【基于win32ui模块】
-
Python图像的增强处理操作示例【基于ImageEnhance类】
-
Python图像滤波处理操作示例【基于ImageFilter类】
-
python opencv图像处理基本操作示例详解
-
Python处理菜单消息操作示例【基于win32ui模块】
-
Python基于property实现类的特性操作示例
-
Python图像的增强处理操作示例【基于ImageEnhance类】
-
Python图像滤波处理操作示例【基于ImageFilter类】
-
python opencv图像处理基本操作示例详解