众所周知:频谱中心代表低频,四周代表高频。
问:那(u,v)一点代表什么?
答:
1.当为水平方向的正弦图片时,二维傅里叶变换后,其只有u方向的频谱值;
2.当为垂直方向的正弦图片是,二维傅里叶变换后,其只有v方向的频谱值;
3.当为y=x(45度)方向的正弦图片时,二维傅里叶变换后,其只有y=x(45度)方向的频谱值;
结论:二维频谱图包含原图不同方向,不同频率的信号的幅值信息。
效果图
matlab源代码
a=zeros(128);
b=zeros(128);
c=zeros(128);
for i=1:size(a,1)
a(:,i)=cos(2*pi/32*i)+1; % 为了突出原点作为参考,除了余弦我还加了直流分量。
end
for i=1:size(b,1)
b(i,:)=cos(2*pi/32*i)+1; % 为了突出原点作为参考,除了余弦我还加了直流分量。
end
w1=45;
for i=1:size(c,1)
for j=1:size(c,1)
c(i,j)=cos(2*pi/32*sin(w1/180*pi)*(j-(1/tan(w1/180*pi))*(i-1)))+1; % 为了突出原点作为参考,除了余弦我还加了直流分量。
end
end
% f=(a+b)/2;
subplot(321);imshow(a,[])
F = (fftshift(fft2(a)));
subplot(322);imshow(F,[])
subplot(323);imshow(b,[])
F = (fftshift(fft2(b)));
subplot(324);imshow(F,[])
subplot(325);imshow(c,[])
F = (fftshift(fft2(c)));
subplot(326);imshow(F,[])
代码参考
如何理解图像经傅里叶变换后所得频谱图意义?频谱图坐标轴的物理意义是什么?频谱图与原图的对应关系是什么? - Cat food的回答 - 知乎
https://www.zhihu.com/question/264302905/answer/2474993232
230412补gif动图展示频谱方向与原图的关系
源码
% %旋转显示不同角度傅里叶变换的意义
close;
clear;
I = imread('雀斑.jpg');
I = rgb2gray(I);
[a,b] = size(I);
c=1;d=60;
F = (fftshift(fft2(I)));
% H = ones(a,b);
% H(a/2-c:a/2+c,b/2-d:b/2+d) = 0;
% H = zeros(a,b);
% H(a/2-c:a/2+c,b/2-d:b/2+d) = 1;
H = zeros(a,b);
h=89.999999;
for r=-h:1:h
k=tan(r/180*pi);
H=rgb2gray(insertShape(H, 'line', [b,(k*(b-round(b/2))+round(a/2)),0,(k*(0-round(b/2))+round(a/2))],'LineWidth',5));
%H=rgb2gray(insertShape(H, 'line', [b,0+g,0,a-g],'LineWidth',20));
Fp = F.*H;
iF = ifft2(ifftshift(Fp));
iF = uint8(real(iF));
figure(1);
subplot(221);imshow(I);%原图
subplot(222);imshow(F);%原图频谱
subplot(223);imshow(iF);%滤波后原图
subplot(224);imshow(Fp);%滤波后频谱
saveas(1,'abc.jpg');
A=rgb2gray(imread('abc.jpg'));
[Im,map]=gray2ind(A,256);
if(r+h+1==1)
imwrite(Im,map,'movefig.gif','DelayTime',0.1,'LoopCount',Inf) %第一帧
else
imwrite(Im,map,'movefig.gif','WriteMode','append','DelayTime',0.1) %其余帧
end
end
230418补: