フーリエ行列のどの値が、画像のサイズ、回転、平行移動などの変化に関与しているかを知りたいです。
複素数の dft 行列を出力する 2 次元 DFT 関数をコーディングしました。
たとえば、2 つの画像がある場合のように、画像のスケーリング、移動、および回転に関与する値を削除するにはどうすればよいですか。
画像1
Image2 = 90 度回転した Image1
両方の画像の DFT 行列を比較すると、それらが等しいことがわかります。
これが私が持っているDFT関数のコードです:
%----------------------------------------------------------------
function [Xk] = dft1(xn)
N=length(xn);
n = 0:1:N-1; % row vector for n
k = 0:1:N-1; % row vecor for k
WN = exp(-1j*2*pi/N); % Twiddle factor (w)
nk = n'*k; % creates a N by N matrix of nk values
WNnk = WN .^ nk; % DFT matrix
Xk = (WNnk*xn );
%----------------------------------------------------------------
%----------------------------------------------------------------
function out=dft2(x)
y=zeros(size(x));
y1=y;
C=size(x,2); %number of columns
for c=1:C
y(:,c)=dft1(x(:,c));
end
R=size(x,1); %number of rows
for r=1:R
y1(r,:)=dft1(y(r,:).');
end
out=y1;
%----------------------------------------------------------------