MATLAB自编自适应中值滤波算法

代码原理:

在噪声密度不是很大的情况下(根据经验,噪声的出现的概率小于0.2),使用中值滤波的效果不错。但是当噪声出现的概率比较高时,原来的中值滤波算法就不是很有效了。只有增大滤波器窗口尺寸,尽管会使图像变得模糊。使用自适应中值滤波器的目的就是,根据预设好的条件,动态地改变中值滤波器的窗口尺寸,以同时兼顾去噪声作用和保护细节的效果。

下面是自适应中值滤波器算法的详细描述:

预先定义好以下符号:

Sxy:滤波器的作用区域,滤波器窗口所覆盖的区域,该区域中心点为图像中第y行第x列个像素点;

Zmin:Sxy中最小的灰度值;

Zmax:Sxy中最大的灰度值;

Zmed:Sxy中所有灰度值的中值;

Zxy:表示图像中第y行第x列个像素点的灰度值;

Smax:Sxy所允许的最大窗口尺寸;

自适应中值滤波器分为以下两个过程,A和B:

A:

1. A1 = Zmed - Zmin

2. A2 = Zmed - Zmax

3. 如果A1>0 且 A2<0,则跳转到B

4. 否则,增大窗口的尺寸

5. 如果增大后的尺寸≤Smax,则重复A

6. 否则,直接输出Zmed

B:

1. B1 = Zxy - Zmin

2. B2 = Zxy - Zmax

3. 如果B1>0 且 B2<0,则输出Zxy

4. 否则输出Zmed

直观解释

在自适应中值滤波算法中,A步骤里面会先判断是否满足Zmin

接下来考虑跳转到B之后的情况:判断中心点的像素值是否是噪声点,判断条件为Zmin

使用的图像源:

MATLAB自编自适应中值滤波算法_第1张图片

实验结果:

MATLAB自编自适应中值滤波算法_第2张图片

MATLAB自编自适应中值滤波算法_第3张图片

MATLAB自编自适应中值滤波算法_第4张图片

MATLAB自编自适应中值滤波算法_第5张图片

MATLAB自编自适应中值滤波算法_第6张图片

MATLAB自编自适应中值滤波算法_第7张图片

注:有需要源文件及设计文件的朋友可以联系作者,作者创作不易,希望客官们打赏~(作者联系方式见个人资料)

你可能感兴趣的:(MATLAB,图像处理,算法,matlab,开发语言)