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

作者:PHILOS_THU 时间:2021-10-31 16:47:20 

本文实例讲述了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程序设计有所帮助。

来源:https://blog.csdn.net/guduruyu/article/details/71404941

标签:Python,图像,滤波
0
投稿

猜你喜欢

  • JavaScript 判断浏览器类型及版本

    2024-05-13 10:36:39
  • python画图的函数用法以及技巧

    2021-11-01 17:58:19
  • 用python实现的去除win下文本文件头部BOM的代码

    2021-04-01 08:00:19
  • 使用PyTorch实现随机搜索策略

    2021-05-16 02:33:02
  • python实现批量获取指定文件夹下的所有文件的厂商信息

    2021-12-14 20:42:27
  • Scrapy爬虫实例讲解_校花网

    2023-03-02 14:46:39
  • 史上最全Python文件类型读写库大盘点

    2021-01-28 22:08:26
  • Go整合captcha实现验证码功能

    2024-04-26 17:29:43
  • 高效率的GetRows()的使用方法

    2008-09-23 18:29:00
  • python人工智能自定义求导tf_diffs详解

    2023-06-11 13:31:51
  • python 基于opencv操作摄像头

    2023-03-06 08:02:31
  • 在Python函数中输入任意数量参数的实例

    2022-07-09 04:58:08
  • 连接pandas以及数组转pandas的方法

    2021-11-12 12:12:09
  • CSS Sprites 样式生成工具 2.0下载

    2009-05-13 12:41:00
  • Mysql中如何查看执行计划

    2024-01-21 14:03:56
  • Python3.5面向对象与继承图文实例详解

    2021-05-14 15:48:42
  • [Oracle] RAC 之 - 负载均衡深入解析

    2024-01-27 19:05:17
  • Python利用tkinter和socket实现端口扫描

    2022-05-08 11:53:23
  • Django实现基于类的分页功能

    2022-04-06 21:49:03
  • Django logging配置及使用详解

    2022-06-01 14:12:48
  • asp之家 网络编程 m.aspxhome.com