私は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