中值滤波去除图像噪声的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));  

对椒盐噪声的处理结果:

对高斯噪声的处理结果:

 

 

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM