1

标题

嗨,我正在尝试将两个 fftw_complex 类型的数组相乘,我应该怎么做?

这是代码:

fftw_complex *rInF, *gInF, *bInF;
fftw_complex *rOutF, *gOutF, *bOutF;
for(int i=0;i<m_image->width()*m_image->height();i++)
{


    //realis
    rInF[i][0] = rIn[i][0]*rInMask[i][0] - rIn[i][1]*rInMask[i][1];
    gInF[i][0] = gIn[i][0]*gInMask[i][0] - gIn[i][1]*gInMask[i][1];
    bInF[i][0] = bIn[i][0]*bInMask[i][0] - bIn[i][1]*bInMask[i][1];
    //imaginalis
    rInF[i][1] = rIn[i][1]*rInMask[i][0] + rIn[i][0]*rInMask[i][1];
    gInF[i][1] = gIn[i][1]*gInMask[i][0] + gIn[i][0]*gInMask[i][1];
    bInF[i][1] = bIn[i][1]*bInMask[i][0] + bIn[i][0]*bInMask[i][1];
}

我有每个 RGB 通道的 2 个数组(来自两个给我们 2R、2G、2B 的图像)。

rIn,gIn,bIn 和 rInMask,gInMask,bInMask 都可以。我想将两个复数相乘并将乘法的值分配给 rInF、gInF 和 bInF。

稍后我将做一个反向 fftw 并在频域进行卷积。(<- 这并不重要)。

该应用程序只是关闭并且没有给我任何错误。

4

0 回答 0