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中global与nonlocal比较
Nov 21 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
Python GUI布局尺寸适配方法
Oct 11 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
python实现飞船游戏的纵向移动
Apr 24 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 Python
Python如何读写CSV文件
Aug 13 Python
python mock测试的示例
Oct 19 Python
如何Python使用re模块实现okenizer
Apr 30 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
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP微商城开源代码实例
2019/03/27 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
婴儿地球:Baby Earth
2018/12/25 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
医科大学生毕业的自我评价分享
2013/11/12 职场文书
建筑工程技术应届生求职信
2013/11/17 职场文书
《将心比心》教学反思
2014/04/08 职场文书
市场营销策划方案
2014/06/11 职场文书
教师培训学习心得体会
2016/01/21 职场文书