向量的二维 FFT

信息处理 图像处理 fft matlab 二维
2022-02-03 07:06:29

我有一堆 8x8 图像,它们已被矢量化并形成一个 64xN 矩阵 X。我想对这些图像中的每一个进行 2D-FFT,而不是将 X 的每一列重新整形为 8x8 图像并使用 fft2。

有什么建议么?我尝试过使用 kronecker 产品和 vec() 操作的属性,但没有得到任何结果。

2个回答

您的矩阵如下所示: 其中的图像矩阵。所以图像的第一列(我使用 matlab/octave 表示法)。您说您不想重塑每一列,并且您已经尝试过 kronecker 产品等,但我实际上认为重塑是解决您的问题的最简单方法。看代码:

X1(:,1)XN(:,1)X1(:,8)XN(:,8)
Xi,i=1,64,8×8Xi(:,1)ith

Z=[];fori=1:N,Y=reshape(X(:,i),8,8);Z=[Z,fft2(Y)];end

N中的图像总数是一个矩阵,包含所有个图像的 DFT。我认为它不会比这更简单。如果是这样,请告诉我。XZ8×8NN

您可以创建一个包含傅立叶基组的矩阵,其格式符合图像的矢量化版本,并使用该矩阵计算 fft2。

因此,您可以通过简单的矩阵乘法得到您想要的。