这是代码的一部分:
// Convert the raw images to vectors
PF_PixelFloat* pixelPointerAtIndex;
for (unsigned long index= 0; index < imgArraySize; index++){
pixelPointerAtIndex = (PF_PixelFloat*)((char*)inWorld.data + (index * sizeof(PF_PixelFloat)));
imgRedDataVector.push_back( (std::complex<double>) pixelPointerAtIndex->red);
imgGreenDataVector.push_back((std::complex<double>) pixelPointerAtIndex->green);
imgBlueDataVector.push_back((std::complex<double>) pixelPointerAtIndex->blue);
}
// Fourier Transform
fft::transform(imgRedDataVector);
fft::transform(imgGreenDataVector);
fft::transform(imgBlueDataVector);
// Copy the Fourier data back to the image
for (unsigned long index = 0; index < imgArraySize; index++) {
pixelPointerAtIndex = (PF_PixelFloat*)((char*)inWorld.data + (index * sizeof(PF_PixelFloat)));
pixelPointerAtIndex->red = imgRedDataVector[index].real();
pixelPointerAtIndex->green = imgGreenDataVector[index].real();
pixelPointerAtIndex->blue = imgBlueDataVector[index].real();
}
我也可以尝试:
finalImgRedDataVector[index].imag()
...
好像我正在获取“参数”,而我需要“模量”
任何人都知道这是什么问题还是我想念的是什么?
我正在使用FftComplex.h
谢谢。
答案 0 :(得分:1)
您也没有得到“参数”。复数有两个部分,“实”和“虚”。将它们描绘为X和Y坐标,自变量是它们形成的角度,量级是到原点的距离。第二幅图描述的是幅度。
在C ++中,这是abs(std::complex)