1

見出し

こんにちは、fftw_complex 型の 2 つの配列を乗算しようとしています。どうすればよいですか?

コードは次のとおりです。

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 を与える 2 つの画像から)。

rIn,gIn,bIn と rInMask,gInMask,bInMask は OK です。2 つの複素数を乗算し、乗算の値を rInF、gInF、および bInF に割り当てたいと考えています。

後で逆方向の fftw を作成し、周波数領域で畳み込みを行います (<- それは重要ではありません)。

アプリケーションはシャットダウンするだけで、エラーは発生しません。

4

0 に答える 0