J'ai une affectation à propos de fftw et j'essayais d'écrire un petit programme pour créer un fft d'une image. J'utilise CImg pour lire et écrire des images. Mais tout ce que je reçois est une image sombre avec un seul point blanc :(FFT d'une image
Je vais très probablement le faire dans le mauvais sens et j'apprécierais que quelqu'un puisse expliquer comment cela devrait être fait. Je n'ai pas besoin du code , j'ai juste besoin de savoir quelle est la bonne façon de le faire
Voici mon code:.
CImg<double> input("test3.bmp");
CImg<double> image_fft(input, false);
unsigned int nx = input.dimx(), ny = input.dimy();
size_t align = sizeof(Complex);
array2<Complex> in (nx, ny, align);
fft2d Forward(-1, in);
for (int i = 0; i < input.dimx(); ++i) {
for (int j = 0; j < input.dimy(); ++j) {
in(i,j) = input(i,j);
}
}
Forward.fft(in);
for (int i = 0; i < input.dimx(); ++i) {
for (int j = 0; j < input.dimy(); ++j) {
image_fft(i,j,0) = image_fft(i,j,1) = image_fft(i,j,2) = std::abs(in(i,j));
}
}
image_fft.normalize(0, 255);
image_fft.save("test.bmp");
Merci beaucoup, ça marche maintenant :) – jbradaric