0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像处理基础自适应中值滤波器(基于OpenCV实现)

Dbwd_Imgtec 来源:未知 作者:邓佳佳 2018-03-05 17:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

本文主要介绍了自适应的中值滤波器,并基于OpenCV实现了该滤波器,并且将自适应的中值滤波器和常规的中值滤波器对不同概率的椒盐噪声的过滤效果进行了对比。最后,对中值滤波器的优缺点了进行了总结。

空间滤波器

一个空间滤波器包括两个部分:

• 一个邻域,滤波器进行操作的像素集合,通常是一个矩形区域

• 对邻域中像素进行的操作

一个滤波器就是在选定的邻域像素上执行预先定义好的操作产生新的像素,并用新的像素替换掉原来像素形成新的图像。通常,也可以将滤波器称之为核(kernel),模板(template)或者窗口(window)。

根据预定义的操作,可以将滤波器分为:

• 线性滤波器• 非线性滤波器

而根据滤波器最终对图像造成的影响,可以将滤波器分为:

• 平滑滤波器 ,通常用于模糊图像或者去除图像中的噪声• 锐化滤波器,突出图像中的边缘细节部分

中值滤波器 Median Filter

中值滤波器是一种常用的非线性滤波器,其基本原理是选择待处理像素的一个邻域中各像素值的中值来代替待处理的像素,其主要功能是像素的灰度值与周围像素比较接近,从而消除孤立的噪声点,所以中值滤波器能够很好的消除椒盐噪声。不仅如此,中值滤波器在消除噪声的同时,还能有效的保护图像的边界信息,不会对图像造成很大的模糊(相比于均值滤波器)。

中值滤波器的效果受滤波窗口尺寸的影响较大,在消除噪声和保护图像的细节存在着矛盾:滤波窗口较小,则能很好的保护图像中的某些细节,但对噪声的过滤效果就不是很好;反之,窗口尺寸较大有较好的噪声过滤效果,但是会对图像造成一定的模糊。另外,根据中值滤波器原理,如果在滤波窗口内的噪声点的个数大于整个窗口内像素的个数,则中值滤波就不能很好的过滤掉噪声。

自适应中值滤波器 Adaptive Median Filter

上面提到常规的中值滤波器,在噪声的密度不是很大的情况下(根据经验,噪声的出现的概率小于0.2),效果不错。但是当概率出现的概率较高时,常规的中值滤波的效果就不是很好了。有一个选择就是增大滤波器的窗口大小,这虽然在一定程度上能解决上述的问题,但是会给图像造成较大的模糊。

常规的中值滤波器的窗口尺寸是固定大小不变的,就不能同时兼顾去噪和保护图像的细节。这时就要寻求一种改变,根据预先设定好的条件,在滤波的过程中,动态的改变滤波器的窗口尺寸大小,这就是自适应中值滤波器 Adaptive Median Filter。在滤波的过程中,自适应中值滤波器会根据预先设定好的条件,改变滤波窗口的尺寸大小,同时还会根据一定的条件判断当前像素是不是噪声,如果是则用邻域中值替换掉当前像素;不是,则不作改变。

自适应中值滤波器有三个目的:

• 滤除椒盐噪声• 平滑其他非脉冲噪声• 尽可能的保护图像中细节信息,避免图像边缘的细化或者粗化。

自使用中值滤波算法描述

自适应滤波器不但能够滤除概率较大的椒盐噪声,而且能够更好的保护图像的细节,这是常规的中值滤波器做不到的。自适应的中值滤波器也需要一个矩形的窗口SxySxy,和常规中值滤波器不同的是这个窗口的大小会在滤波处理的过程中进行改变(增大)。需要注意的是,滤波器的输出是一个像素值,该值用来替换点(x,y)(x,y)处的像素值,点(x,y)(x,y)是滤波窗口的中心位置。

在描述自适应中值滤波器时需要用到如下的符号:

• Zmin= Sxy中的最小灰度值• Zmax= Sxy中的最大灰度值• Zmed= Sxy中的灰度值的中值• Zxy表示坐标(x,y)处的灰度值• Smax= Sxy允许的最大窗口尺寸

自适应中值滤波器有两个处理过程,分别记为:A和B。

A:A1 = Zmed− ZminA2 = Zmed− Zmax如果A1 > 0 且 A2 < 0,跳转到 B;否则,增大窗口的尺寸如果增大后窗口的尺寸 ≤Smax,则重复A过程。否则,输出Zmed

B:B1 = Zxy− ZminB2 = Zxy− Zmax如果B1 > 0 且 B2 < 0,则输出Zxy否则输出Zmed

自适应中值滤波原理说明

过程A的目的是确定当前窗口内得到中值ZmedZmed是否是噪声。如果Zmin< Zmed < Zmax,则中值Zmed不是噪声,这时转到过程B测试,当前窗口的中心位置的像素Zxy是否是一个噪声点。如果Zmin < Zxy < Zmax,则Zxy不是一个噪声,此时滤波器输出Zxy;如果不满足上述条件,则可判定Zxy是噪声,这是输出中值Zmed(在A中已经判断出Zmed不是噪声)。

如果在过程A中,得到则Zmed不符合条件Zmin< Zmed < Zmax,则可判断得到的中值Zmed是一个噪声。在这种情况下,需要增大滤波器的窗口尺寸,在一个更大的范围内寻找一个非噪声点的中值,直到找到一个非噪声的中值,跳转到B;或者,窗口的尺寸达到了最大值,这时返回找到的中值,退出。

从上面分析可知,噪声出现的概率较低,自适应中值滤波器可以较快的得出结果,不需要去增加窗口的尺寸;反之,噪声的出现的概率较高,则需要增大滤波器的窗口尺寸,这也符合种中值滤波器的特点:噪声点比较多时,需要更大的滤波器窗口尺寸。

实现

有了算法的详细描述,借助于OpenCV对图像的读写,自适应中值滤波器实现起来也不是很困难。

首先定义滤波器最小的窗口尺寸以及最大的窗口尺寸。

要进行滤波处理,首先要扩展图像的边界,以便对图像的边界像素进行处理。copyMakeBorder根据选择的BorderTypes使用不同的值扩充图像的边界像素,具体可参考OpenCV的文档信息。

下面就是遍历图像的像素,对每个像素进行滤波处理。需要注意一点,不论滤波器多么的复杂,其每次的滤波过程,都是值返回一个值,来替换掉当前窗口的中心的像素值。函数adpativeProcess就是对当前像素的滤波过程,其代码如下:

首先,根据当前窗口的大小,取得所有像素值存放到vector中,然后对vector进行排序,取得像素的最小值、最大值和中值。然后测试当前取得的中值是否在(min,max)之间,如果是,则中值不是噪声点,则开始对当前像素值进行处理,判断其是否是噪声点。如果,测试当前已取得的中值是噪声点,则扩大窗口的尺寸,在更大的空间中重新寻找中值。

上面自适应中值滤波器实现起来比较简单,所以问题就来了:效率及其的低下。这里,这是对自适应中值滤波器的原理的学习,可以忽略这个不必要的细节。

结果对比

左边是添加概率为0.2的椒盐噪声,右边是原图。下面是使用常规的中值滤波和本文实现的自适应中值滤波器后的处理结果

左边是自适应中值滤波器(最小窗口为3,最大窗口为7)的结果,右图是常规中值滤波器(窗口大小为5)的结果。可以看出,无论是中值滤波还是自适应的中值滤波,都能过滤掉图像中的噪声,自适应中值滤波器的效果要好些,常规的还有一些噪声没有过滤掉。而且,常规的中值滤波器对图像造成的模糊较明显,而自适应中值滤波器很好的的保存了图像中的细节。

下面测试更大概率噪声下,两种滤波器的工作情况。噪声概率为0.4时,

可以看出,常规的中值滤波器已经不能很好的过滤掉噪声,而自适应的中值滤波还可以胜任。

中值滤波器总结

中值滤波器能够很好的滤除“椒盐”噪声。椒盐噪声是在图像上随机出现的孤立点,根据中值滤波器的原理,使用邻域像素的中值代替原像素,能够有效的消除这些孤立的噪声点。

和均值滤波器相比,中值滤波在消除噪声的同时,还能在很大程度保护图像的细节,不会造成很大的模糊。和常规的中值滤波器相比,自适应中值滤波器能够更好的保护图像中的边缘细节部分。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    28

    文章

    1340

    浏览量

    59177
  • OpenCV
    +关注

    关注

    33

    文章

    651

    浏览量

    44411

原文标题:图像处理基础(2):自适应中值滤波器(基于OpenCV实现)

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    配电房自适应滤波声纹传感:智能监测的新维度

    文章由山东华科信息技术有限公司提供在配电房的日常运维中,设备运行声音的细微变化往往蕴含着潜在故障的早期信号。自适应滤波声纹传感作为新一代智能监测设备,通过动态捕捉与分析设备声纹特征,为电力系统
    的头像 发表于 11-18 09:17 151次阅读
    配电房<b class='flag-5'>自适应</b><b class='flag-5'>滤波</b>声纹传感<b class='flag-5'>器</b>:智能监测的新维度

    配电房自适应滤波声纹传感

    了"智能耳朵",实现了从被动响应到主动预防的运维模式革新。该技术的核心在于自适应滤波与声纹识别的深度结合。传感内置的数字信号处理器可实时分
    的头像 发表于 08-08 09:36 690次阅读
    配电房<b class='flag-5'>自适应</b><b class='flag-5'>滤波</b>声纹传感<b class='flag-5'>器</b>

    基于FPGA LMS算法的自适应滤波器设计

    自适应滤波是近几十年发展起来的信号处理理论的的新分支。随着人们在该领域研究的不断深入,自适应处理的理论和技术日趋完善,其应用领域也越来越广泛
    的头像 发表于 07-10 11:25 3095次阅读
    基于FPGA LMS算法的<b class='flag-5'>自适应</b><b class='flag-5'>滤波器</b>设计

    有源滤波器与无源滤波器的区别

    滤波器是根据电路参数对电路频带宽度的影响而设计出来的工程应用电路,滤波器种类很多,有源滤波器和无源滤波器的区别我们最简单的分别办法是看看是否需要电源,在作用上最大的区别在于有源
    的头像 发表于 06-18 09:03 1212次阅读

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    实现、多抽样率数字信号系统、DFT和FFT算法、未来很可能实现的高级算法以及自适应滤波器等。给出了Verilog源代码和术语。 02、数字信号处理
    发表于 04-07 16:41

    电源滤波器如何适应高压大电流的工作环境?

    电源滤波器能够有效适应高压大电流的工作环境,为电子设备提供稳定、纯净的电源。
    的头像 发表于 03-10 17:10 713次阅读
    电源<b class='flag-5'>滤波器</b>如何<b class='flag-5'>适应</b>高压大电流的工作环境?

    电源滤波器对不同波形电源输入的滤波效果探究

    电源滤波器保障电源质量,对不同波形输入有各异滤波效果。正弦波输入时去高频噪声和谐波,方波挑战大需多级滤波,三角波滤波后接近正弦波。未来滤波器
    的头像 发表于 02-17 13:47 1034次阅读
    电源<b class='flag-5'>滤波器</b>对不同波形电源输入的<b class='flag-5'>滤波</b>效果探究

    带通滤波器的种类与技术架构

    带通滤波器(Band-Pass Filter,BPF)是一种重要的信号处理元件,它允许特定频率范围内的信号通过,同时衰减或抑制其他频率的信号。这种滤波器在电子技术和信号处理领域中具有广
    的头像 发表于 02-05 16:41 1527次阅读

    低通滤波器的工作原理 低通滤波器在音频处理中的应用

    的特性,电容通高频阻低频,而电感则相反,通低频阻高频。通过巧妙结合这两种元件,低通滤波器可以实现对信号的频率选择性过滤。 RC低通滤波器 RC低通滤波器是最简单的一种低通
    的头像 发表于 02-01 10:24 2629次阅读

    低通和高通滤波器的基础知识

    作者:Aiden Warne 低通和高通滤波器简介 低通和高通滤波器广泛应用于电气工程领域。例如,这些低通和高通滤波器可用于音频处理图像
    的头像 发表于 01-25 16:55 2546次阅读
    低通和高通<b class='flag-5'>滤波器</b>的基础知识

    WEBENCH有源滤波器设计与实现

    电子发烧友网站提供《WEBENCH有源滤波器设计与实现.pdf》资料免费下载
    发表于 01-21 14:54 2次下载
    WEBENCH有源<b class='flag-5'>滤波器</b>设计与<b class='flag-5'>实现</b>

    数字低通滤波器实现方法

    在数字信号处理领域,低通滤波器扮演着至关重要的角色。它们被广泛应用于音频处理图像处理、通信系统等多个领域,用于去除不需要的高频噪声或干扰,
    的头像 发表于 01-21 09:52 1656次阅读

    常见低通滤波器类型分析

    低通滤波器(Low-pass filter, LPF)是一种允许低频信号通过,同时阻止或减弱高频信号的电子滤波器。在信号处理、通信系统和音频处理等领域中,低通
    的头像 发表于 01-21 09:50 2711次阅读

    电源滤波器对不同电压波动的适应能力怎样

    电源滤波器适应能力取决于设计与类型。无源滤波器适用于小电压波动,成本低但效果有限。有源滤波器适用于大电压波动,成本高但效果好。选择需考虑应用场景、负载变化和电磁兼容性。
    的头像 发表于 01-06 10:26 633次阅读
    电源<b class='flag-5'>滤波器</b>对不同电压波动的<b class='flag-5'>适应</b>能力怎样

    滤波器的一些常识

    滤波器简介:滤波器是一种用于信号处理的设备或系统,用于改变信号的频率特性,以实现信号的滤波、增强、去噪或降噪等功能。
    的头像 发表于 12-18 17:05 1505次阅读
    <b class='flag-5'>滤波器</b>的一些常识