⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lena_corrupt_lp_hp.m

📁 利用MAtlab消除噪声
💻 M
字号:
%调用图像
I1=imread('f:\lena\lena_corrupt.bmp');
figure,imshow(I1)
title('hello,i am Lena')

%巴特沃思低通滤波消噪,图像模糊;理想滤波可以解决,见LenaW.M
f=double(I1); 
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=60;
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
    for j= 1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        
        h=1/(1+0.414*(d/d0)^(2*n));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
figure,imshow(X3)
title('hello,low pass filter')

%在低通基础上,进行巴特沃思高通滤波,需要图像标定,没有解决
g2=fft2(X3);
g2=fftshift(g2);
[M1,M2]=size(g2);
d1=400;
m1=fix(M1/2);
m2=fix(M2/2);
for i=1:M1
    for j=1:M2
        d2=sqrt((i-m1)^2+(j-m2)^2);
        if d2==0
            h2==0;
        else
            h2=0.5+(1/(1+(d1/d)^(2*n)));
        end
        result2(i,j)=h2*g2(i,j);
    end
end
%标定图像
%[f1,f2]=freqspace(512,'meshgrid');
 for I = M1:M2,
             for J =  M1:M2,
              if result2(I,J)<0
                 result2(I,J)=0; 
             end
         end
     end
Y2=ifft2(result2);
Y3=uint8(real(Y2));
figure,imshow(Y3)
title('hello,high pass filter')

%直接将高通于低通图像相加,效果不理想//标定也许可以解决
X3=double(X3);
Y3=double(Y3);
Z3=X3+Y3;
Z=uint8(real(Z3));
figure,imshow(Z)
title('hello,clean clear now')
figure,imhist(Z)

%未标定的图像,直方图均衡化湿效果更差
I=histeq(Z,0:256);
figure,imshow(I)
title('hello,clean clear now,too ')
figure,imhist(I)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -