您的位置:首页 > 编程语言 > MATLAB

Matlab中消除图像噪声之中值滤波器:medfilt2

2015-09-05 00:50 239 查看
Matlab中消除图像噪声之中值滤波器:medfilt2
  medfilt2, matlab, 消除噪声, 中值滤波器, 椒盐噪声
  在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的杂讯。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用技术个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。
  
  中值滤波是图像处理中的一个常用步骤,它对于斑点噪声(en:speckle noise)和椒盐噪声(en:salt-and-pepper noise)来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。当要求在降低噪声的同时要求保持边缘,中值滤波较卷积有更好的效果。
  
  在matlab中,medfilt2函数用于执行二维中值滤波,使用方法如下:
  B = medfilt2(A, [m n]) 
  B = medfilt2(A)
  B = medfilt2(A, ’indexed’, ...)
  其中[m n]表示邻域块的大小,默认值为[3 3]。
  //b=medfilt2(a,[m,n]);
  b是中值滤波后的图象矩阵,a是原图矩阵,m和n是处理模版大小,默认3×3。
  
  例如:我们先在一个图像上加入椒盐噪声,然后使用中值滤波将其去除。 
  
  I = imread(’eight.tif’);
  
  J = imnoise(I,’salt & pepper’,0.02);
  
  K = medfilt2(J);
  
  imview(J), imview(K)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: