Python图像滤波处理操作示例【基于ImageFilter类】


Posted in Python onJanuary 03, 2019

本文实例讲述了Python图像滤波处理操作。分享给大家供大家参考,具体如下:

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

下面先直接看一个样例:

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

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

原图lena.jpg如下:

Python图像滤波处理操作示例【基于ImageFilter类】

上例的滤波处理结果如下:

Python图像滤波处理操作示例【基于ImageFilter类】

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python的即时标记项目练习笔记
Sep 18 Python
Python实现队列的方法
May 26 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
python SMTP实现发送带附件电子邮件
May 22 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
python两种获取剪贴板内容的方法
Nov 06 Python
python 调用有道api接口的方法
Jan 03 #Python
对python调用RPC接口的实例详解
Jan 03 #Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 #Python
Python多图片合并PDF的方法
Jan 03 #Python
python对于requests的封装方法详解
Jan 03 #Python
python使用suds调用webservice接口的方法
Jan 03 #Python
Python调用服务接口的实例
Jan 03 #Python
You might like
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php 读取shell管道传输过来的内容
2010/03/01 PHP
php中的strpos使用示例
2014/02/27 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
python实现感知器
2017/12/19 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
美国在线购物频道:Shop LC
2019/04/21 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
煤矿安全承诺书
2014/05/22 职场文书
护士实习求职信
2014/06/22 职场文书
班级活动总结格式
2014/08/30 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
就业导师推荐信范文
2015/03/27 职场文书