欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Matlab中值滤波去噪

程序员文章站 2024-03-18 14:36:52
...

以灰度图像eight.tif为例,向原始图像中加入椒盐噪声,再对噪声图像调用中值滤波函数midfilt进行去噪。

I=imread('eight.tif');
J=imnoise(I,'salt & pepper');
after=midfilt(J,3); 
subplot(1,3,1);
imshow(I);
subplot(1,3,2);
imshow(J);
subplot(1,3,3);
imshow(after);
function d=midfilt(x, n)
[M,N]=size(x);
x1=x;
x2=x1;
for i=1:M-n+1
    for j=1:N-n+1
        c=x1(i:i+n-1,j:j+n-1);
        e=c(1,:); 
        for k=2:n
            e=[e,c(k,:)];
        end
        x2(i+(n-1)/2,j+(n-1)/2)=median(e);

    end
end
d=x2;