【python图像处理】图像的滤波(ImageFilter类详解)
在图像处理中,经常需要对图像进行平滑、锐化、边界增强等滤波处理。在使用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类详解)相关推荐
- Python面对对象编程——对象、类详解及实例
Python中类与对象的初认识 1.Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的 ...
- [Python从零到壹] 六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解
祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...
- python中paste函数的作用_PIL图像处理模块paste方法简单使用详解
python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的,现在 ...
- Python元类详解
文章目录 Python元类详解 Python谜团 元类的本质 调用一个类时发生了什么 再探元类 自定义元类 彩蛋:跳过python解释器 Python元类详解 元类比99%的用户所担心的魔法要更深,如 ...
- OpenCV Mat类详解和用法(官网原文)
参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...
- OpenCV Mat类详解和用法
OpenCV Mat类详解和用法 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们 ...
- matlab做拉普拉斯曲线,Matlab 拉普拉斯滤波 以及 imfilter 详解(多图)
Matlab 拉普拉斯滤波 以及 imfilter 详解(多图) 08-08栏目:技术 TAG:imfilter imfilter 代码: jhua.orgclc clear all A=imread ...
- 【python教程入门学习】Python函数定义及传参方式详解(4种)
这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.函数初识 1.定 ...
- Python中的__name__和__main__含义详解
背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main(): ...... if __name__ == "__ma ...
最新文章
- VS2012+LUA环境搭建
- web前端学习:1分钟了解JavaScript基础语法规则
- Windows下MySQL的详细安装教程
- 价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议
- java 职业规划_java个人职业生涯规划范文
- 牡丹-洛阳牡丹:洛阳牡丹
- b站pink老师JavaScript的PC端网页特效 案例代码——仿京东放大镜效果
- 实现一下模式识别(三)FLD
- 调取python背景减法库:MOG2和KNN,非常好用
- Google 百度 图标收藏(三)
- java歌词解析器_Java swing实现音乐播放器桌面歌词字体变色效果|chu
- Nature Gradient 自然梯度
- ActivityManagerService架构剖析开篇
- 微信公众号如何上传文件
- Thinkpad R61I 驱动下载及安装方法 for windows 2003
- 防统方Oracle,风信子医院数据库安全与防统方解决方案
- 聊聊所谓的弹性工作制
- IT项目的六西格玛管理之法
- 阿里云异构计算平台——加速AI深度学习创新
- Ajax怎么获取data为集合的值,vue,ajax获取本地的json文件,赋值后,computed和mounted里访问不到重新赋值后的listDatas...
热门文章
- jvm性能调优 - 13JVM的年轻代垃圾回收器ParNew原理
- 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
- java编译的语句_在Java语言中,下列语句能通过编译的是()。
- 用计算机模拟物理学,计算机模拟技术在医学物理学教学中的应用研究.pdf
- 录制失败因为媒体服务失败_具惠善减肥失败,竟然是因为它
- 【TypeScript】类的使用
- php购物系统论文答辩老师评价,答辩指导教师的评语大全
- 简述C语言的标准发展,简述C语言的发展历史
- 顺序表应用2:多余元素删除之建表算法