public static Image <Bgr, byte> FastGuidedFilterEnchacement(Image <Bgr, byte> image) { Image <Bgr, byte> result; var bmp = image.Bitmap; var fastGuidedFilter = new FastGuidedFilter { KernelSize = 16, Epsilon = 0.16f, SubSamplingRatio = 0.25f, OverlayImage = (Bitmap)bmp.Clone() }; var guidedImage = fastGuidedFilter.Apply(bmp); var subtracted = new AForge.Imaging.Filters.Subtract(guidedImage).Apply(fastGuidedFilter.OverlayImage); guidedImage.Dispose(); //var mul = 100; //var Multiply = FastGuidedFilter.GetFilledImage( // subtracted.Width, subtracted.Height, // subtracted.PixelFormat, Color.FromArgb(mul, mul, mul)); //new Multiply(Multiply).ApplyInPlace(subtracted); //Multiply.Dispose(); new AForge.Imaging.Filters.Add(subtracted).ApplyInPlace(fastGuidedFilter.OverlayImage); subtracted.Dispose(); fastGuidedFilter.OverlayImage.Dispose(); result = new Image <Bgr, byte>(fastGuidedFilter.OverlayImage); return(result); }