示例#1
0
        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();
                }
            }
        }
示例#2
0
        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;
                }
            }
        }