2
我有一個關於fftw的任務,我試圖編寫一個小程序來創建一個圖像的fft。我正在使用CImg來讀取和寫入圖像。但我得到的是一個黑色的圖像與一個單一的白點:(圖像的FFT
我很可能這樣做是錯誤的方式,我將不勝感激,如果有人可以解釋這應如何完成。我不需要代碼,我只需要知道什麼是做到這一點的正確方法
這裏是我的代碼:
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");
非常感謝你,它現在的作品:) – jbradaric 2009-07-11 18:26:10