Je suis en train de faire un lot FFT sur 50 images en utilisant l'extrait suivant:Comment lots FFT en C
pix3 = n*pix1*pix2;
fftwf_complex *in2, *f2h; //input for FFT2
in2 = (fftwf_complex*)fftwf_malloc(sizeof(fftwf_complex) * pix3);
f2h = (fftwf_complex*)fftwf_malloc(sizeof(fftwf_complex) * pix3);
for (i = 0; i < pix3; i++)
{
in2[i][0] = ref20[i]; //ref20 is an array of real values
in2[i][1] = 0;
}
for(i = 0; i < n; ++i)
{
plan_forward2 = fftwf_plan_dft_2d (pix1, pix2, in2, f2h, FFTW_FORWARD, FFTW_ESTIMATE);
fftwf_execute (plan_forward2);
in2 += pix1*pix2;
f2h += pix1*pix2;
}
Cependant, je ne suis en mesure d'obtenir la FFT de la 1ère image (ie premier PIX1 * éléments pix2). Des suggestions sur la façon d'obtenir ce droit?
Merci à l'avance
Vous devrez peut-être montrer la code entre l'allocation de mémoire initiale et la boucle for, c'est-à-dire la partie qui charge réellement les images dans in2. –
après allocation de mem, je suis juste en train de lire les données (size = pix3) d'un fichier texte puis de convertir ma variable en un type complexe (in2) – vivekv80