我想知道傅立叶矩阵中的哪些值对图像的大小、旋转、平移等变化负责。
我编写了一个二维 DFT 函数,该函数输出复数的 dft 矩阵。
如何删除负责图像缩放、平移和旋转的值,例如当我有 2 个图像时:
图片1
Image2 = Image1 旋转 90 度
一旦我们比较了两幅图像的 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;
%----------------------------------------------------------------