オンラインで見つけた FFT クラスを使用して、画像の FFT を計算しています。FFT を計算するコードは次のとおりです。
この例では、w (幅) と h (高さ) は同じ値です。
FFT2 fft = new FFT2(w);
double[] realRow = new double[w];
double[] imagRow = new double[w];
double[][] realVals1 = new double[w][h];
double[][] imagVals1 = new double[w][h];
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
pixel = bmporiginal.getPixel(x, y);
R = (int) (Color.red(pixel));
G = (int) (Color.green(pixel) );
B = (int) (Color.blue(pixel));
I = ((R+G+B)/3);
I *= Math.pow(-1, (x+y) % 2.0 );
realRow[x] = I;
imagRow[x] = 0.0;
}
fft.fft(realRow, imagRow);
realVals1[y] = realRow;
imagVals1[y] = imagRow;
}
必要な値は、realVals と ImagVals に格納されています。これらの値を for ループ内で出力して、適切な値を取得できます。forループを離れた後、それらを再度印刷しましたが、何も得られません!!! 何が問題なのですか?私はあなたの助けに感謝します!