// Backward Fourier transformation private void backwardFourierItem_Click(object sender, System.EventArgs e) { ComplexImage cimg = (ComplexImage)image.Clone( ); cimg.BackwardFourierTransform( ); host.NewDocument(cimg.ToBitmap( )); }
public Bitmap GetBackFTT() { ComplexImage copy = _image; copy.BackwardFourierTransform(); Bitmap bitmap = copy.ToBitmap(); return(bitmap); }
public Bitmap GetBackwardFourierTransform() { ComplexImage copy = _complexImage; copy.BackwardFourierTransform(); Bitmap fourierImage = copy.ToBitmap(); return(fourierImage); }
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()); }
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(); }
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"); }
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(); } } }
public static BitmapImage BackwardFourierTransform(ComplexImage image) { image.BackwardFourierTransform(); return(image.ToBitmapImage()); }
public Bitmap ImagenNormal() { cimage.BackwardFourierTransform(); imagen = cimage.ToBitmap(); return(imagen); }