在图像处理中,经常需要对图像进行平滑、锐化、边界增强等滤波处理。在使用PIL图像处理库时,我们通过Image类中的成员函数filter()来调用滤波函数对图像进行滤波,而滤波函数则通过ImageFilter类来定义的。

下面先直接看一个样例:

#-*- coding: UTF-8 -*-     from PIL import Image
from PIL import ImageFilterdef image_filters_test():im = Image.open("lenna.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

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指定核的大小

上例的滤波处理结果如下

2017.05.08

【python图像处理】图像的滤波(ImageFilter类详解)相关推荐

  1. Python面对对象编程——对象、类详解及实例

    Python中类与对象的初认识 1.Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的 ...

  2. [Python从零到壹] 六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解

    祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...

  3. python中paste函数的作用_PIL图像处理模块paste方法简单使用详解

    python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的,现在 ...

  4. Python元类详解

    文章目录 Python元类详解 Python谜团 元类的本质 调用一个类时发生了什么 再探元类 自定义元类 彩蛋:跳过python解释器 Python元类详解 元类比99%的用户所担心的魔法要更深,如 ...

  5. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  6. OpenCV Mat类详解和用法

    OpenCV Mat类详解和用法 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们 ...

  7. matlab做拉普拉斯曲线,Matlab 拉普拉斯滤波 以及 imfilter 详解(多图)

    Matlab 拉普拉斯滤波 以及 imfilter 详解(多图) 08-08栏目:技术 TAG:imfilter imfilter 代码: jhua.orgclc clear all A=imread ...

  8. 【python教程入门学习】Python函数定义及传参方式详解(4种)

    这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.函数初识 1.定 ...

  9. Python中的__name__和__main__含义详解

    背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main():     ...... if __name__ == "__ma ...

最新文章

  1. VS2012+LUA环境搭建
  2. web前端学习:1分钟了解JavaScript基础语法规则
  3. Windows下MySQL的详细安装教程
  4. 价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议
  5. java 职业规划_java个人职业生涯规划范文
  6. 牡丹-洛阳牡丹:洛阳牡丹
  7. b站pink老师JavaScript的PC端网页特效 案例代码——仿京东放大镜效果
  8. 实现一下模式识别(三)FLD
  9. 调取python背景减法库:MOG2和KNN,非常好用
  10. Google 百度 图标收藏(三)
  11. java歌词解析器_Java swing实现音乐播放器桌面歌词字体变色效果|chu
  12. Nature Gradient 自然梯度
  13. ActivityManagerService架构剖析开篇
  14. 微信公众号如何上传文件
  15. Thinkpad R61I 驱动下载及安装方法 for windows 2003
  16. 防统方Oracle,风信子医院数据库安全与防统方解决方案
  17. 聊聊所谓的弹性工作制
  18. IT项目的六西格玛管理之法
  19. 阿里云异构计算平台——加速AI深度学习创新
  20. Ajax怎么获取data为集合的值,vue,ajax获取本地的json文件,赋值后,computed和mounted里访问不到重新赋值后的listDatas...

热门文章

  1. jvm性能调优 - 13JVM的年轻代垃圾回收器ParNew原理
  2. 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
  3. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
  4. java编译的语句_在Java语言中,下列语句能通过编译的是()。
  5. 用计算机模拟物理学,计算机模拟技术在医学物理学教学中的应用研究.pdf
  6. 录制失败因为媒体服务失败_具惠善减肥失败,竟然是因为它
  7. 【TypeScript】类的使用
  8. php购物系统论文答辩老师评价,答辩指导教师的评语大全
  9. 简述C语言的标准发展,简述C语言的发展历史
  10. 顺序表应用2:多余元素删除之建表算法