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

Posted Julye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中值滤波去除图像噪声的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));  

对椒盐噪声的处理结果:

对高斯噪声的处理结果:

 

 

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

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

 

以上是关于中值滤波去除图像噪声的matlab程序的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB-中值滤波原理实现及应用

MATLAB-中值滤波原理实现及应用

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

基于MATLAB的均值滤波算法实现

怎样用matlab进行图像滤波处理

图像去噪基于matlab高斯+均值+中值+双边滤波图像去噪含Matlab源码 1872期