-5

フーリエ行列のどの値が、画像のサイズ、回転、平行移動などの変化に関与しているかを知りたいです。

複素数の 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;
%----------------------------------------------------------------
4

2 に答える 2

-1

DFT の大きさを取得し、それを対数極座標に変換し、その FFT を取得してから、マグニチュードを取得します。平行移動、回転、およびスケールの不変性は得られますが、他の変換に対するロバスト性は得られません。

于 2014-12-22T16:13:50.763 に答える