example8_19巴特沃斯低通滤波.m

来自「MATLAB的一些实用程序」· M 代码 · 共 28 行

M
28
字号
I1=imread('Saturn.tif');     
figure,imshow(I1)
I2=imnoise(I1,'salt & pepper');
figure,imshow(I2)
f=double(I2); 
%傅里叶变换
g=fft2(f); 
%转换数据矩阵
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=50;
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
   for j=1:N2
      d=sqrt((i-n1)^2+(j-n2)^2);
     %计算Butterworth低通转换函数
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)

⌨️ 快捷键说明

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