这是我的代码,简单到我不敢相信它不起作用。
pckint = imread('pckint.jpg');
F = fft2(pckint);
Fcon = conj(F);
S = F*Fcon;
现在,根据分配方向和我对主题的理解,我应该在我的功率谱“S”中获得真实值。但是,我得到了复杂的值。
很抱歉,当谈到 Matlab 时,我是一个完全的菜鸟,但我尝试搜索和理解我使用过的所有命令,但无济于事。请帮忙!
这是我的代码,简单到我不敢相信它不起作用。
pckint = imread('pckint.jpg');
F = fft2(pckint);
Fcon = conj(F);
S = F*Fcon;
现在,根据分配方向和我对主题的理解,我应该在我的功率谱“S”中获得真实值。但是,我得到了复杂的值。
很抱歉,当谈到 Matlab 时,我是一个完全的菜鸟,但我尝试搜索和理解我使用过的所有命令,但无济于事。请帮忙!
您可以应用元素乘法,以便第 (i,j) 个元素与第 (i,j) 个元素相乘:
S = F.*Fcon;
F
我认为你的意思是和之间的元素乘法Fconj
;见维基文章。
你正在做矩阵乘法,这只有在你有一个正方形图像时才有效;当我第一次尝试时,我的测试是使用矩形图像,所以我立即明白为什么它不正确:)
试试这个:
pckint = imread('pckint.jpg');
F = fft2(pckint);
S = F.*conj(F);
any(imag(S(:)) ~= 0)
结果:
ans =
0