見出し
こんにちは、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 を作成し、周波数領域で畳み込みを行います (<- それは重要ではありません)。
アプリケーションはシャットダウンするだけで、エラーは発生しません。