0

这是我的代码,简单到我不敢相信它不起作用。

pckint = imread('pckint.jpg');
F = fft2(pckint);
Fcon = conj(F);
S = F*Fcon;

现在,根据分配方向和我对主题的理解,我应该在我的功率谱“S”中获得真实值。但是,我得到了复杂的值。

很抱歉,当谈到 Matlab 时,我是一个完全的菜鸟,但我尝试搜索和理解我使用过的所有命令,但无济于事。请帮忙!

4

2 回答 2

5

您可以应用元素乘法,以便第 (i,j) 个元素与第 (i,j) 个元素相乘:

S = F.*Fcon;
于 2013-04-05T08:14:51.973 回答
1

F我认为你的意思是和之间的元素乘法Fconj;见维基文章

你正在做矩阵乘法,这只有在你有一个正方形图像时才有效;当我第一次尝试时,我的测试是使用矩形图像,所以我立即明白为什么它不正确:)

阅读MATLAB 中的各种运算符

试试这个:

pckint = imread('pckint.jpg');
F = fft2(pckint);    
S = F.*conj(F);

any(imag(S(:)) ~= 0)

结果:

ans = 
       0
于 2013-04-05T08:22:27.883 回答