Python图像滤波处理操作示例【基于ImageFilter类】

 更新时间:2019年01月03日 10:02:41   作者:PHILOS_THU  
这篇文章主要介绍了Python图像滤波处理操作,结合实例形式分析了Python基于ImageFilter类实现的滤波处理相关操作技巧,需要的朋友可以参考下

本文实例讲述了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相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)

    用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)

    这篇文章主要介绍了用python打开摄像头并把图像传回qq邮箱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 浅谈Pandas:Series和DataFrame间的算术元素

    浅谈Pandas:Series和DataFrame间的算术元素

    今天小编就为大家分享一篇浅谈Pandas:Series和DataFrame间的算术元素,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • flask操作数据库插件Flask-SQLAlchemy的使用

    flask操作数据库插件Flask-SQLAlchemy的使用

    Python 中最广泛使用的ORM框架是SQLAlchemy,它是一个很强大的关系型数据库框架,本文就来介绍一下flask操作数据库插件Flask-SQLAlchemy的使用,感兴趣的可以了解一下
    2023-09-09
  • python简单鼠标自动点击某区域的实例

    python简单鼠标自动点击某区域的实例

    今天小编就为大家分享一篇python简单鼠标自动点击某区域的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python实现双进程防止单点故障实例深度探究

    Python实现双进程防止单点故障实例深度探究

    在分布式系统中,确保系统的高可用性是至关重要的,本文将深入探讨如何使用Python实现双进程自我保护机制,以应对单点故障,确保系统稳定运行,将通过详实的示例代码,介绍双进程自我保护的原理、实现步骤以及可能遇到的挑战
    2024-01-01
  • 深入了解和应用Python 装饰器 @decorator

    深入了解和应用Python 装饰器 @decorator

    在编程过程中,经常遇到这样的场景:登录校验,权限校验,日志记录等,这些功能代码在各个环节都可能需要,但又十分雷同,通过装饰器来抽象、剥离这部分代码可以很好解决这类场景,这篇文章主要介绍了Python的装饰器 @decorator,探讨了使用的方式,需要的朋友可以参考下
    2019-04-04
  • python多线程threading.Lock锁用法实例

    python多线程threading.Lock锁用法实例

    这篇文章主要介绍了python多线程threading.Lock锁用法,以实例形式对python锁的用法进行了较为详细的分析,需要的朋友可以参考下
    2014-11-11
  • 在python中使用正则表达式查找可嵌套字符串组

    在python中使用正则表达式查找可嵌套字符串组

    这篇文章主要介绍了在python中使用正则表达式查找可嵌套字符串组的相关资料,需要的朋友可以参考下
    2017-10-10
  • Python数据结构与算法(几种排序)小结

    Python数据结构与算法(几种排序)小结

    这篇文章主要介绍了Python数据结构与算法(几种排序)的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 浅谈Python生成器generator之next和send的运行流程(详解)

    浅谈Python生成器generator之next和send的运行流程(详解)

    下面小编就为大家带来一篇浅谈Python生成器generator之next和send的运行流程(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05

最新评论