SampleApp.MainForm.fastGuidedFilterFiltersItem_Click C# (CSharp) Method

fastGuidedFilterFiltersItem_Click() private method

private fastGuidedFilterFiltersItem_Click ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        private void fastGuidedFilterFiltersItem_Click(object sender, EventArgs e)
        {
            ClearCurrentImage();

            // Spreading pixels values from 0 to 65535 instead of byte values for less loosing data when applying the filter.
            // Of course, we could use the source image in 8-bit (easiest and fastest way but slightly losing data).
            using (var bmp = Accord.Imaging.Image.Convert8bppTo16bpp(sourceImage))
            {
                var fastGuidedFilter = new FastGuidedFilter
                {
                    KernelSize = 8,
                    Epsilon = 0.02f,
                    SubSamplingRatio = 0.25f,
                    OverlayImage = (Bitmap)bmp.Clone()
                };

                // apply filter
                fastGuidedFilter.ApplyInPlace(bmp);
                fastGuidedFilter.OverlayImage.Dispose();

                if (pictureBox.Image != null)
                    pictureBox.Image.Dispose();

                // display filtered image
                pictureBox.Image = Accord.Imaging.Image.Convert16bppTo8bpp(bmp);
            }
        }
    }
MainForm