如何从 Cimg FFT 获取 FFT 值?

问题描述

我正在使用 Cimg 来获取 (256 X 256) 图像的 FFT 值。但是图像的 FFT 值是复数值的 3 维数组,即 (256 X 256 X 3)。我使用 get_FFT() 图像的实部和虚部得到了两个图像。我还将这些值打印为 fft0 + j fft1。我不确定这是否是获取值的正确方法,但这仍然是 (256 X 256)。我们如何得到FFT的第三维值?

#include "CImg.h"
using namespace cimg_library;

int main(int argc,char * argv[]) {

    const char *input_file = "Lenna";
    CImg<unsigned char> input(input_file);
    CImgList<float> fft = input.get_FFT();
    fft[0].save("fft[0].jpg");
    fft[1].save("fft[1].jpg");

    int w0 = fft[0].width();
    printf("width of fft[0] %d \n",fft[0].width());
    int h0 = fft[0].height();
    printf("height of fft[0] %d \n",fft[0].height());
    printf("Spectrum of fft[0] %d \n",fft[0].spectrum());
    
    int count =1;
    for(int x=0;y<w0;y++){
    for(int y=0;x<h0;x++){
        count+=1;
        std::cout <<count <<","<< (int)fft[0](x,y) <<" "<< "+j"<< (int)fft[1](x,y)<<std::endl;
          }
       }   

    return 1;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)