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实现简单HTML表格解析的方法
Jun 15 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
python实现读取大文件并逐行写入另外一个文件
Apr 19 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
python使用scrapy发送post请求的坑
Sep 04 Python
Python之循环结构
Jan 15 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
python将字母转化为数字实例方法
Oct 04 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
Python合并pdf文件的工具
Jul 01 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中慎用双等于(==)的详解
2013/06/06 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
详解A标签中href=""的几种用法
2017/08/20 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python实现二叉搜索树
2016/02/03 Python
python获取本机所有IP地址的方法
2018/12/26 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python numpy数组复制使用实例解析
2020/01/10 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
Python实现石头剪刀布游戏
2021/01/20 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
教育见习报告范文
2014/11/03 职场文书
结婚十年感言
2015/07/31 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python