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生成excel的实例代码
Nov 08 Python
tornado 多进程模式解析
Jan 15 Python
django利用request id便于定位及给日志加上request_id
Aug 26 Python
kafka-python批量发送数据的实例
Dec 27 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
Python random模块的使用示例
Oct 10 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
python 实现的车牌识别项目
Jan 25 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
一些PHP写的小东西
2006/12/06 PHP
PHP 面向对象实现代码
2009/11/11 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python入门学习指南分享
2018/04/11 Python
实例介绍Python中整型
2019/02/11 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
python PIL模块的基本使用
2020/09/29 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
质检的岗位职责
2013/11/17 职场文书
内容编辑个人求职信
2013/12/10 职场文书
百日安全活动总结
2014/05/04 职场文书
2014年工程部工作总结
2014/11/25 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
python语言中pandas字符串分割str.split()函数
2022/08/05 Python