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编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
python字典排序实例详解
May 20 Python
Python实现豆瓣图片下载的方法
May 25 Python
Python打印“菱形”星号代码方法
Feb 05 Python
对Python3中的input函数详解
Apr 22 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
Django 框架模型操作入门教程
Nov 05 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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/05/12 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
php生成与读取excel文件
2016/10/14 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
js登录弹出层特效
2014/03/07 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
珍惜水资源建议书
2014/03/12 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
2015年工商所工作总结
2015/05/21 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers