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蓄水池算法的应用案例与代码详解

    Python蓄水池算法的应用案例与代码详解

    蓄水池算法(Reservoir Sampling)是一种用于处理大规模数据流的随机抽样算法,该算法能够在不知道数据流大小的情况下,从数据流中均匀随机地抽取固定大小的样本,本文给大家介绍了一个详细的Python蓄水池算法的实现,包括完整的代码示例,需要的朋友可以参考下
    2024-11-11
  • Python数据分析与处理(一)--北京高考分数线统计分析

    Python数据分析与处理(一)--北京高考分数线统计分析

    这篇文章主要介绍了Python数据分析与处理北京高考分数线统计分析,文章问绕Python数据分析与处理相关资料的介绍,展开对北京高考分数线统计分析,需要的小伙伴可以参考一下
    2021-12-12
  • Python开发文字版密室逃脱游戏的实例(含代码)

    Python开发文字版密室逃脱游戏的实例(含代码)

    密室逃脱游戏是一种颇受欢迎的解谜类游戏,玩家通常需要通过观察、推理、合作等方式解决一系列难题,以逃脱困境,在这篇博文中,我们将使用Python开发一个文字版密室逃脱游戏,旨在通过简单的文本交互来呈现游戏的趣味性与挑战性
    2025-04-04
  • Python 创建空的list,以及append用法讲解

    Python 创建空的list,以及append用法讲解

    今天小编就为大家分享一篇Python 创建空的list,以及append用法讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python+Pygame实现海洋之神大冒险游戏

    Python+Pygame实现海洋之神大冒险游戏

    这篇文章主要介绍了如何利用Python+Pygame自制一个海洋之神大冒险游戏。规则是在海里收集鱼骨头,有些鱼骨头可以转化为武器,用来攻击敌人,感兴趣的可以了解一下
    2022-08-08
  • Python模块/包/库安装的六种方法及区别

    Python模块/包/库安装的六种方法及区别

    这篇文章主要介绍了Python模块/包/库安装六种方法,通过实例代码给大家介绍了python中模块、包、库的区别和使用,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 详解Python中__str__和__repr__方法的区别

    详解Python中__str__和__repr__方法的区别

    这篇文章主要介绍了__str__和__repr__方法的区别 ,__str__和__repr__是基本的内置方法,使用时的区别也是Python学习当中的基础,需要的朋友可以参考下
    2015-04-04
  • pycharm如何添加解释器

    pycharm如何添加解释器

    这篇文章主要介绍了pycharm如何添加解释器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python神经网络Pytorch中Tensorboard函数使用

    python神经网络Pytorch中Tensorboard函数使用

    这篇文章主要为大家介绍了python神经网络Pytorch中Tensorboard常用函数的使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python使用graphviz画流程图过程解析

    Python使用graphviz画流程图过程解析

    这篇文章主要介绍了Python使用graphviz画流程图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论