要求
- 输入图像,将它变成灰度图然后剪成 512X512 大小的图 A。
- 用 fft2 对灰度图 A 进行傅立叶变换结果记为 fA。用 abs 求能谱。用 imshow
显示该能谱,再用 imshow 显示该能谱的 log 值图像。 - 对图 A 进行拉普拉斯(算子记为 S)高通滤波,结果记为 sA。
- 计算拉普拉斯的算子的傅立叶变换 fft2(S, 512,512),结果记为 fS。
- 根据卷积频率空间的性质计算频率空间的中 fS 与 fA 的乘法(.*),并对
结果作傅立叶逆变换 ifft2。 - 上述结果用 real 取实数部,结果记为 rA。
- 并排显示 sA 和 rA,比较异同。
Matlab代码实现
clc
clear
I=imread(‘示例.jpg’);
U=rgb2gray(I);
A=imresize(U,[512,512],‘nearest’);
fA=fft2(A);
msg1=abs(fA);
msg2=log(abs(fA)+1);
% figure(1);subplot(2,2,1); imshow(fA,[]);title(‘傅里叶变换结果fA’);
Data1=double(A);
%***用拉普拉斯算子对此图像锐化
S=[0 -1 0;-1 4 -1; 0 -1 0 ];
sA=conv2(Data1,S,‘same’);
figure(1),subplot(1,2,1); imshow(uint8(sA)); title(‘图像sA’);
imwrite(sA,‘图像sA.png’);
fS=fft2(S,512,512);
Result=fS . fA;
rA=real(ifft2(Result));
figure(1),subplot(1,2,2); imshow(uint8(rA)); title(‘图像rA’);
imwrite(rA,‘图像rA.png’);