中值滤波去除图像噪声的matlab程序

中值滤波:基于排序理论的一种能有效抑制噪声的非线性信号处理技术。

方法:取含有基数(偶数会有半像素的差)个模板数据的滑动模板,对模板中的数据从小到大排序,取排在中间位置上的数据作为最终的处理结果。

matlab程序:

[height, width]=size(result2);   
x1=double(result2);  
x2=x1;  
n=3;
for i=1:height-n+1  
    for j=1:height-n+1  
        c=x1(i:i+(n-1),j:j+(n-1)); 
        e=c(1,:);       
        for u=2:n  
            e=[e,c(u,:)];        
        end
        m=median(e);      
        x2(i+(n-1)/2,j+(n-1)/2)=m;   
    end  
end   
imshow(uint8(x2));  

对椒盐噪声的处理结果:

对高斯噪声的处理结果:

 

 

由以上对两种造声滤波结果可以看出:

      对于椒盐噪声,其只在画面中部分点随机出现,通过中值滤波,数组排序,其被污染的点排在边上,中间为未被污染的点,将未被污染的点替代噪声点,因此滤波效果很好,画面的清晰度也基本保持;而对于高斯噪声,由于高斯噪声以随机大小的幅值污染所有的点,无论怎样滤波,得到的还是被污染的值,因此滤波效果不是特别好。

 

posted @ 2017-10-02 17:59  Julye  阅读(10623)  评论(0编辑  收藏  举报