主要内容

medfilt2

二维中值滤波

描述

例子

J= medfilt2 (对图像进行中值滤波在二维空间中。每个输出像素包含输入图像中对应像素的3 × 3邻域的中值。

J= medfilt2 ((mn)中值过滤,其中每个输出像素都包含中值——- - - - - -n输入图像中对应像素的邻域。

J= medfilt2 (___padopt控制medfilt2填充图像边界。

例子

全部折叠

读取图像到工作区并显示它。

I = imread(“eight.tif”);图中,imshow(我)

图中包含一个轴对象。axis对象包含一个image类型的对象。

加入盐和胡椒的噪音。

J = imnoise(I,“盐和胡椒”, 0.02);

使用中值滤波器过滤掉噪声。

K = medfilt2(J);

并排显示结果。

imshowpair (J, K,“蒙太奇”

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

输入图像,指定为二维灰度或二值图像。

数据类型:||int8|int16|int32|uint8|uint16|uint32|逻辑

邻域大小,指定为2元素正整数向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

填充选项,指定为以下值之一。

价值 描述
“零”(默认) 填充图像0年代。
“对称” 在边界处对称地扩展图像。
“索引” 如果,然后填充图像1年代;否则,用0年代。

数据类型:字符|字符串

输出参数

全部折叠

输出图像,作为与输入图像相同类的数字矩阵返回

提示

  • 中值滤波是一种非线性操作,常用于图像处理中以降低“椒盐”噪声。当目标是同时降低噪声和保留边缘时,中值滤波器比卷积更有效。有关性能注意事项的信息,请参见ordfilt2

  • 如果输入图像是整数类的,则所有输出值都作为整数返回。如果邻域的像素数(m * n)为偶数,则某些中值可能不是整数。在这些情况下,小数部分将被丢弃。逻辑输入的处理方式类似。例如,a中2 × 2邻域的真实中值uint8数组是4.5,但是medfilt2丢弃小数部分并返回4。

    1 5 4 8
  • 如果你指定padopt作为“零”“索引”,则填充可以使图像边界附近的中值偏斜。在邻域宽度的二分之一内的像素((mn)/ 2)的边缘会出现扭曲。

算法

在CPU上,medfilt2使用ordfilt2执行过滤。

参考文献

[1]林宰S,二维信号与图像处理,恩格尔伍德悬崖,新泽西州,普伦蒂斯大厅,1990年,第469-476页。

扩展功能

版本历史

R2006a之前介绍