www.gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第18章/代码18-10.txt
I1=imread('eight.tif'); % 读入图像 figure,imshow(I1); % 显示原始图像 f=double(I1); % 数据类型转换 g=fft2(f); % 图像傅立叶转换 g=fftshift(g); % 傅立叶变换平移 F2 = log(abs(g)); % 对傅立叶变换结果取绝对值,然后取对数 figure,imshow(F2,[],'InitialMagnification','fit'); % 将计算后的矩阵用图像表示 colormap(jet); % 设置色彩索引图 colorbar % 显示色彩索引条 [N1,N2]=size(g); % 傅立叶变换图像尺寸 n=2; % 参数赋初始值 d0=5; % 参数赋初始值 n1=fix(N1/2); % 数据圆整 n2=fix(N2/2); % 数据圆整 for i=1:N1 % 遍历图像像素 for j=1:N2 d=sqrt((i-n1)^2+(j-n2)^2); if d==0 h=0; % 求h else h=1/(1+(d/d0)^(2*n)); % 求h end result(i,j)=h*g(i,j); % 图像矩阵计算处理 end end F3 = log(abs(result)); % 对傅立叶变换结果取绝对值,然后取对数 figure,imshow(F3,'InitialMagnification','fit'); % 将计算后的矩阵用图像表示 colormap(jet); % 设置色彩索引图 colorbar % 显示色彩索引条 result=ifftshift(result); % 傅立叶变换平移 X2=ifft2(result); % 图像傅立叶逆变换 X3=uint8(real(X2)); % 数据类型转换 figure,imshow(X3) % 显示处理后的图像