Python图像处理库PIL的ImageFilter模块使用介绍


Posted in Python onFebruary 26, 2020

ImageFilter模块提供了滤波器相关定义;这些滤波器主要用于Image类的filter()方法。

一、ImageFilter模块所支持的滤波器

当前的PIL版本中ImageFilter模块支持十种滤波器:

1、  BLUR

ImageFilter.BLUR为模糊滤波,处理之后的图像会整体变得模糊。

例子:

>>> from PIL importImageFilter
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im = im02.filter(ImageFilter.BLUR)

图像im02为原始图像,如下:

Python图像处理库PIL的ImageFilter模块使用介绍                          

图像im为模糊滤波之后的图像,明显比原始图像模糊了一些,见下图:

Python图像处理库PIL的ImageFilter模块使用介绍

2、  CONTOUR

ImageFilter.CONTOUR为轮廓滤波,将图像中的轮廓信息全部提取出来。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im= im02.filter(ImageFilter.CONTOUR)

图像im为轮廓图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

3、  DETAIL

ImageFilter.DETAIL为细节增强滤波,会使得图像中细节更加明显。

例子:

>>>from PIL import ImageFilter

>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")

>>> im= im02.filter(ImageFilter.DETAIL)

图像im为细节增强后的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

4、 EDGE_ENHANCE

ImageFilter.EDGE_ENHANCE为边缘增强滤波,突出、加强和改善图像中不同灰度区域之间的边界和轮廓的图像增强方法。经处理使得边界和边缘在图像上表现为图像灰度的突变,用以提高人眼识别能力。

例子:

>>>from PIL import ImageFilter

>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")

>>> im= im02.filter(ImageFilter.EDGE_ENHANCE)

图像im为边缘增强后的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

5、 EDGE_ENHANCE_MORE

ImageFilter.EDGE_ENHANCE_MORE为深度边缘增强滤波,会使得图像中边缘部分更加明显。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im= im02.filter(ImageFilter.EDGE_ENHANCE_MORE)

图像im为深度边缘增强后的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

6、EMBOSS

ImageFilter.EMBOSS为浮雕滤波,会使图像呈现出浮雕效果。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im= im02.filter(ImageFilter.EMBOSS)

图像im为浮雕效果的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍        

7、 FIND_EDGES

ImageFilter.FIND_EDGES为寻找边缘信息的滤波,会找出图像中的边缘信息。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im= im02.filter(ImageFilter.FIND_EDGES)

图像im为边缘信息的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

8、  SMOOTH

ImageFilter.SMOOTH为平滑滤波,突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im= im02.filter(ImageFilter.SMOOTH)

图像im为平滑滤波的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

9、  SMOOTH_MORE

ImageFilter.SMOOTH_MORE为深度平滑滤波,会使得图像变得更加平滑。

例子:

>>> from PIL importImageFilter
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im =im02.filter(ImageFilter.SMOOTH_MORE)

图像im为深度平滑滤波的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

10、SHARPEN

ImageFilter.SHARPEN为锐化滤波,补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。

例子:

>>>from PIL import ImageFilter
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im =im02.filter(ImageFilter.SHARPEN)

图像im为锐化滤波的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

二、ImageFilter模块的函数

1、  Kernel

定义:Kernel(size,kernel, scale=None, offset=0)

含义:(New in 1.1.5)生成一个给定尺寸的卷积核。在当前的版本中,变量size必须为(3,3)或者(5,5)。变量kernel与变量size对应地必须为包含9个或者25个整数或者浮点数的序列。

如果设置了变量scale,那将卷积核作用于每个像素值之后的数据,都需要除以这个变量。默认值为卷积核的权重之和。

如果设置变量offset,这个值将加到卷积核作用的结果上,然后再除以变量scale。

例子: 

>>>from PIL import ImageFilter
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im=im02.filter(ImageFilter.Kernel((3,3),(1,1,1,0,0,0,2,0,2)))

图像im为经过卷积核处理过的图像,如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

2、  RankFilter

定义:RankFilter(size,rank)

含义:(New in 1.1.5)生成给定尺寸的等级滤波器。对于输入图像的每个像素点,等级滤波器根据像素值,在(size,size)的区域中对所有像素点进行排序,然后拷贝对应等级的值存储到输出图像中。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im=im02.filter(ImageFilter.RankFilter(5,24))

图像im为等级滤波后的图像,在每个像素点为中心的5x5区域25个像素点中选择排序第24位的像素作为新的值。如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

3、  MinFilter

定义:MinFilter(size=3)

含义:(New in 1.1.5)生成给定尺寸的最小滤波器。对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝最小的像素值存储到输出图像中。

例子:

>>> from PIL importImageFilter
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im=im02.filter(ImageFilter.MinFilter(5))

图像im为最小滤波后的图像,在每个像素点为中心的5x5区域25个像素点中选择最小的像素作为新的值。如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

4、  MedianFilter

定义:MedianFilter(size=3)

含义:(New in 1.1.5)生成给定尺寸的中值滤波器。对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝中值对应的像素值存储到输出图像中。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im=im02.filter(ImageFilter.MedianFilter(5))

图像im为中值滤波后的图像,在每个像素点为中心的5x5区域25个像素点中选择中值作为新的值。如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

 5、  MaxFilter

定义:MaxFilter(size=3)

含义:(New in 1.1.5)生成给定尺寸的最大滤波器。对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝最大的像素值存储到输出图像中。

例子:

>>>from PIL import ImageFilter
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im=im02.filter(ImageFilter.MaxFilter(5))

图像im为最大滤波后的图像,在每个像素点为中心的5x5区域25个像素点中选择最大的像素作为新的值。如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

 6、  ModeFilter

定义:ModeFilter(size=3)

含义:(New in 1.1.5)生成给定尺寸的模式滤波器。对于输入图像的每个像素点,该滤波器从(size,size)的区域中拷贝出现次数最多的像素值存储到输出图像中。如果没有一个像素值出现过两次极其以上,则使用原始像素值。

例子:

>>>from PIL import ImageFilter
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im=im02.filter(ImageFilter.ModeFilter(5))

图像im为模式滤波后的图像,在每个像素点为中心的5x5区域25个像素点中选择出现次数最多的像素作为新的值。如下图:

Python图像处理库PIL的ImageFilter模块使用介绍

以上就是Python图像处理库PIL的ImageFilter模块使用介绍的详细内容,更多关于PIL ImageFilter模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python结合shell查询google关键词排名的实现代码
Feb 27 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
pandas 透视表中文字段排序方法
Nov 16 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
python 自动批量打开网页的示例
Feb 21 Python
Python Excel处理库openpyxl使用详解
May 09 Python
详解用python计算阶乘的几种方法
Aug 14 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
Django 实现图片上传和下载功能
Dec 31 Python
如何使用PyCharm及常用配置详解
Jun 03 Python
python元组打包和解包过程详解
Aug 02 Python
python实现低通滤波器代码
Feb 26 #Python
Python解释器及PyCharm工具安装过程
Feb 26 #Python
Python基础之列表常见操作经典实例详解
Feb 26 #Python
Python TKinter如何自动关闭主窗口
Feb 26 #Python
Flask和pyecharts实现动态数据可视化
Feb 26 #Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 #Python
Python基础之字符串常见操作经典实例详解
Feb 26 #Python
You might like
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
JavaScript定义函数_动力节点Java学院整理
2017/06/27 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python实现简单俄罗斯方块
2020/03/13 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
领导视察欢迎词
2014/01/15 职场文书
委托书模板
2014/04/04 职场文书
遗嘱继承公证书
2014/04/09 职场文书
《泉水》教学反思
2014/04/11 职场文书
师德模范事迹材料
2014/06/03 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
北京导游词
2015/02/12 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
使用Redis做预定库存缓存功能
2022/04/02 Redis
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis