Я хотел бы знать, какие значения в матрице Фурье ответственны за изменение размера, вращения, трансляции и т. Д. Изображения.сделать результат Фурье инвариантным относительно поворота, масштаб, трансляцию
Я закодировал двухмерную функцию DFT, которая выводит матрицу dft комплексных чисел.
Как можно удалить значения, отвечающие на масштабирование, перевод, и вращение изображения, таким образом, что, когда у меня есть 2 изображения, например:
image1
Изображение2 = Image1 вращаемый 90degree
Как только мы сравним матрицу 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;
%----------------------------------------------------------------
Этот вопрос не о программировании. Это более уместно либо на http://dsp.stackexchange.com/, либо, может быть, на http://math.stackexchange.com/ –