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读取网页内容的方法
Jul 30 Python
Python 2.x如何设置命令执行的超时时间实例
Oct 19 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
详解Python如何生成词云的方法
Jun 01 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
python sort、sort_index方法代码实例
Mar 28 Python
python实现爬山算法的思路详解
Apr 09 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
Python中Flask-RESTful编写API接口(小白入门)
Dec 11 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
Sentry错误日志监控使用方法解析
Nov 12 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实现与ASP Banner组件相似的类
2006/10/09 PHP
第一节--面向对象编程
2006/11/16 PHP
PHP XML备份Mysql数据库
2009/05/27 PHP
php at(@)符号的用法简介
2009/07/11 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
JSONP基础知识详解
2017/03/19 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
跟老齐学Python之一个免费的实验室
2014/09/14 Python
python3音乐播放器简单实现代码
2020/04/20 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
django 实现简单的插入视频
2020/04/07 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
学校火灾防控方案
2014/06/09 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
放假通知
2015/04/14 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
PHP策略模式写法
2021/04/01 PHP
MySQL8.0.18配置多主一从
2021/06/21 MySQL
MySQL分库分表详情
2021/09/25 MySQL