private void InnerReverseFft(object param) { InnerGetFftBuferParams p = (InnerGetFftBuferParams)param; for (int l = p.begin1; l < p.end1; l++) { for (int k = p.begin2; k < p.end2; k++) { Complex sc = new Complex(0, 0); for (int j = 0; j < SizeY; j++) { for (int i = 0; i < SizeX; i++) { Complex tl = new Complex(fftBuf[j][i].Real, fftBuf[j][i].Imaginary); Complex top = new Complex(((double)(i * k)) / SizeX + ((double)(j * l)) / SizeY, 0); top = Complex.Multiply(top, p.doublePi); tl = Complex.Multiply(tl, Complex.Exp(top)); sc = Complex.Add(sc, tl); } } int t = (int)(sc.Real / SizeX / SizeY); imgInt[l][k] = System.Drawing.Color.FromArgb(t, t, t).ToArgb(); } } }
private void InnerGetFftBufer(object param) { InnerGetFftBuferParams p = (InnerGetFftBuferParams)param; for (int l = p.begin1; l < p.end1; l++) { for (int k = p.begin2; k < p.end2; k++) { Complex sc = new Complex(0, 0); for (int j = 0; j < SizeY; j++) { for (int i = 0; i < SizeX; i++) { Complex t = new Complex(imgInt[j][i] & 0xff, 0); Complex top = new Complex(((double)(i * k)) / SizeX + ((double)(j * l)) / SizeY, 0); top = Complex.Multiply(top, p.doublePi); t = Complex.Multiply(t, Complex.Exp(top)); sc = Complex.Add(sc, t); } } fftBuf[l][k] = sc; } } }