LitDev.Engines.FIP.SDFT C# (CSharp) Method

SDFT() public method

Shifted Discrete Fourier Transform of image.
public SDFT ( Bitmap OriginalImage ) : ].Complex[
OriginalImage System.Drawing.Bitmap Original ARGB image
return ].Complex[
        public Complex[,] SDFT(Bitmap OriginalImage)
        {
            Complex[,] fourier = new Complex[OriginalImage.Width, OriginalImage.Height];

            Bitmap image = this.ToGreyscale(OriginalImage);

            Double[,] mat = this.Shift(image);

            int M = OriginalImage.Width;
            int N = OriginalImage.Height;

            for (int k = 0; k < M; k++)
            {
                for (int l = 0; l < N; l++)
                {

                    Complex sum = 0;

                    for (int j = 0; j < N; j++)
                    {
                        for (int i = 0; i < M; i++)
                        {
                            Double p = mat[i, j];

                            Complex im = new Complex(0, 1);

                            Double g = (k * i) / Convert.ToDouble(M) + (l * j) / Convert.ToDouble(N);

                            Complex exp = Complex.Exp(-im * 2 * Math.PI * g);

                            sum += p * exp;

                        }
                    }

                    fourier[k, l] = sum / Math.Sqrt(M * N);
                }
            }

            return fourier;
        }

Same methods

FIP::SDFT ( Double Data ) : ].Complex[