Пример #1
0
        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);
        }