我有一张灰度图像。我想在它上面实现fftw。所以,到目前为止,我所做的是,
int g;
int width = pixmap.width();
int height = pixmap.height();
const int Lx = width;
const int Lt = height;
int var_x;
int var_t;
double F[Lx][Lt][16];
fftw_complex *in, *out, *result;
fftw_plan p;
in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*Lx*Lt);
out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*Lx*Lt);
result = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) *Lx *Lt);
p = fftw_plan_dft_2d(Lx, Lt, in, out, FFTW_FORWARD, FFTW_MEASURE);
ifstream input;
input.open("2D_function");
for (int x = 0;x < Lx;x++)
{
for (int t = 0; t < Lt; t++)
{
input >> var_t;
input >> var_x;
input >> F[x][t][0];
}
}
for (int x = 0; x < Lx; x++)
{
for (int t = 0; t < Lt; t++)
{
in[t + Lt*x][0] = F[x][t][0];
}
}
input.close();
fftw_execute(p);
for (int x = 0; x < Lx; x++)
{
for (int t = 0; t < Lt; t++)
{
F[x][t][0] = out[t + Lt*x][0];
F[x][t][1] = out[t + Lt*x][1];
}
}
for (int x = 0; x < Lx; x++)
{
for (int t = 0; t < Lt; t++)
{
std::cout<<F[x][t][0]<<F[x][t][1]<<std::endl;
}
}
所以现在我有一个fft变换,具体取决于图像的宽度和高度。但我的理解是,这里的宽度和高度只是数字而不会有像素值所以生成的FFT变换是一些随机输出。如何生成FFT变换,使其将图像作为输入