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 相关文章推荐
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
python实现redis三种cas事务操作
Dec 19 Python
pandas修改DataFrame列名的方法
Apr 08 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
Django多数据库的实现过程详解
Aug 01 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
Django 再谈一谈json序列化
Mar 16 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
python中如何进行连乘计算
May 28 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
编写自己的php扩展函数
2006/10/09 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
浅谈PHP表单提交(POST&GET&URL编/解码)
2017/04/03 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
javascript基本类型详解
2014/11/28 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
python局部赋值的规则
2013/03/07 Python
跟老齐学Python之Python安装
2014/09/12 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
广告创意求职信
2014/03/17 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS