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中join和split用法实例
Apr 14 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
python实现各种插值法(数值分析)
Jul 30 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
Python Socket多线程并发原理及实现
Dec 11 Python
Python截图并保存的具体实例
Jan 14 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
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
js 幻灯片的实现
2011/12/06 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
简单的js计算器实现
2016/10/26 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python中Lambda表达式详解
2019/11/20 Python
python使用smtplib模块发送邮件
2020/12/17 Python
python sleep和wait对比总结
2021/02/03 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
《维生素c的故事》教学反思
2014/02/18 职场文书
四风问题查摆材料
2014/08/25 职场文书
教师听课学习心得体会
2016/01/15 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
Redis Stream类型的使用详解
2021/11/11 Redis
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL