Ejemplo n.º 1
0
        // Backward Fourier transformation
        private void backwardFourierItem_Click(object sender, System.EventArgs e)
        {
            ComplexImage cimg = (ComplexImage)image.Clone( );

            cimg.BackwardFourierTransform( );
            host.NewDocument(cimg.ToBitmap( ));
        }
Ejemplo n.º 2
0
        public Bitmap GetBackFTT()
        {
            ComplexImage copy = _image;

            copy.BackwardFourierTransform();
            Bitmap bitmap = copy.ToBitmap();

            return(bitmap);
        }
Ejemplo n.º 3
0
        public Bitmap GetBackwardFourierTransform()
        {
            ComplexImage copy = _complexImage;

            copy.BackwardFourierTransform();
            Bitmap fourierImage = copy.ToBitmap();

            return(fourierImage);
        }
Ejemplo n.º 4
0
        public static Bitmap BFT(Bitmap inputImage)
        {
            System.Drawing.Image sizeImage = new Bitmap(inputImage, 512, 512);
            //inputImage.Dispose();
            inputImage = (Bitmap)(sizeImage);
            inputImage = ColorToGrayscale(inputImage);
            ComplexImage finalImg = ComplexImage.FromBitmap(inputImage);

            finalImg.BackwardFourierTransform();
            //var data = finalImg.Data;
            return(finalImg.ToBitmap());
        }
Ejemplo n.º 5
0
        private void FFTfilter(object sender, EventArgs e)
        {
            ComplexImage complexImage = ComplexImage.FromBitmap(orignal8);

            complexImage.ForwardFourierTransform();
            //通过频率范围创建过滤器
            AForge.Imaging.ComplexFilters.FrequencyFilter filter = new AForge.Imaging.ComplexFilters.FrequencyFilter(new IntRange(10, 100));
            // 频率过滤
            filter.Apply(complexImage);
            //逆向频率域操作
            complexImage.BackwardFourierTransform();
            curBitmap = complexImage.ToBitmap();
            Invalidate();
        }
Ejemplo n.º 6
0
        public static void TestFFT()
        {
            var bmp = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(FFT_sampleImgName);

            var          image = bmp.ToImage <Gray, byte>().Convert <Complex, float>();
            ComplexImage cuIm  = ComplexImage.FromBitmap(bmp);

            measure(() =>
            {
                image.FFT(FourierTransform.Direction.Forward);
                image.FFT(FourierTransform.Direction.Backward);
            },
                    () =>
            {
                cuIm.ForwardFourierTransform();
                cuIm.BackwardFourierTransform();
            },
                    100,
                    "Image<,> FFT",
                    "AForge FFT");
        }
Ejemplo n.º 7
0
        public Bitmap IdealPass(byte threshold, bool isLowPass, out Bitmap fft)
        {
            ComplexImage cimage = ComplexImage.FromBitmap(_src);

            cimage.ForwardFourierTransform();
            fft = cimage.ToBitmap();

            if (isLowPass)
            {
                cimage.FrequencyFilter(new AForge.IntRange(0, (int)threshold));
            }
            else
            {
                cimage.FrequencyFilter(new AForge.IntRange((int)threshold, 0));
            }

            cimage.BackwardFourierTransform();
            Bitmap dst = cimage.ToBitmap();

            return(dst);
        }
        public FFTWindow(string file)
        {
            InitializeComponent();


            if (string.IsNullOrEmpty(file))
            {
                MessageBox.Show("Did not specify file, nerd");
                this.Close();
            }
            else
            {
                try
                {
                    Bitmap myBmp = new Bitmap(file);

                    if (myBmp.Width < 1000)
                    {
                        imgFFT.Height  = myBmp.Height;
                        imgFFT.Width   = myBmp.Width;
                        imgFFT2.Height = myBmp.Height;
                        imgFFT2.Width  = myBmp.Width;
                        this.Width     = 2 * myBmp.Width;
                    }
                    else
                    {
                        imgFFT.Height  = myBmp.Height / 2;
                        imgFFT.Width   = myBmp.Width / 2;
                        imgFFT2.Height = myBmp.Height / 2;
                        imgFFT2.Width  = myBmp.Width / 2;
                        this.Width     = myBmp.Width;
                    }

                    Bitmap tmp         = ResizeImage(myBmp, 1024, 1024);              //rozmiar do potegi 2
                    Bitmap grayScaleBP = ToGrayscale(tmp);                            // do skali szarosci oraz 8bpp

                    ComplexImage complexImage = ComplexImage.FromBitmap(grayScaleBP); //obraz zespolony

                    complexImage.ForwardFourierTransform();                           //przeprowadzenie forward fourier transform
                    Bitmap fourierImage1 = complexImage.ToBitmap();                   //obraz modulu
                    fourierImage1 = ResizeImage(fourierImage1, myBmp.Width, myBmp.Height);
                    imgFFT.Source = BitmapToImageSource(fourierImage1);

                    FrequencyFilter filter = new FrequencyFilter(new IntRange(20, 128)); //filtr częstotl
                    filter.Apply(complexImage);
                    complexImage.BackwardFourierTransform();                             //wsteczna transformacja
                    Bitmap fourierImage2 = complexImage.ToBitmap();                      //konwersja obrazu zesp do bitmapy

                    fourierImage2  = ResizeImage(fourierImage2, myBmp.Width, myBmp.Height);
                    imgFFT2.Source = BitmapToImageSource(fourierImage2);


                    grayScaleBP.Dispose();
                    //clone.Dispose();
                    myBmp.Dispose();
                    fourierImage1.Dispose();
                    fourierImage2.Dispose();
                }
                catch
                {
                    MessageBox.Show("Wrong file, nerd");
                    this.Close();
                }
            }
        }
Ejemplo n.º 9
0
 public static BitmapImage BackwardFourierTransform(ComplexImage image)
 {
     image.BackwardFourierTransform();
     return(image.ToBitmapImage());
 }
Ejemplo n.º 10
0
 public Bitmap ImagenNormal()
 {
     cimage.BackwardFourierTransform();
     imagen = cimage.ToBitmap();
     return(imagen);
 }