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实现的简单猜数字游戏
Apr 04 Python
python获取指定网页上所有超链接的方法
Apr 04 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
用python写的一个wordpress的采集程序
Feb 27 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python3中property使用方法详解
Apr 23 Python
对pyqt5中QTabWidget的相关操作详解
Jun 21 Python
python中文分词库jieba使用方法详解
Feb 11 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
Python OpenCV去除字母后面的杂线操作
Jul 05 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
python文件名批量重命名脚本实例代码
Apr 22 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
Zerg剧情介绍
2020/03/14 星际争霸
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
vue--vuex详解
2019/04/15 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
django认证系统实现自定义权限管理的方法
2018/07/16 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
详解Python模块化编程与装饰器
2021/01/16 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
DBA的职责都有哪些
2012/05/16 面试题
应届生求职自荐信
2014/07/04 职场文书
股权转让协议范本
2014/12/07 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
学习心理学心得体会
2016/01/22 职场文书
九年级语文教学反思
2016/03/03 职场文书
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers