public static IFilter Create(string filterKey)
        {
            IFilter result = null;
            switch (filterKey)
            {
                case "Median":
                    result = new MedianFilter();
                    break;

                case "Monochrome":
                    result = new MonochromeFilter();
                    break;

                case "Sharpen":
                    result = new SharpenFilter();
                    break;
                case "Boundary":
                    result = new Boundary();
                    break;
                case "Otzu":
                    result = new Otcu();
                    break;
            }

            return result;
        }
Esempio n. 2
0
        private void btn_Sharpen_Click(object sender, EventArgs e)
        {
            var sw = new Stopwatch();

            var    initialImage       = (Bitmap)Image.FromFile(openFileDialog1.FileName);
            Bitmap reconstructedImage = (Bitmap)Image.FromFile(openFileDialog1.FileName);;

            if (pictureBox2.Image != null)
            {
                var brokenImage = (Bitmap)pictureBox2.Image;

                sw.Start();
                reconstructedImage = SharpenFilter.Sharpen(brokenImage, kernelSize);
                pictureBox3.Image  = reconstructedImage;
            }
            else
            {
                sw.Start();
                var brokenImage = SharpenFilter.Sharpen(initialImage, kernelSize);
                pictureBox2.Image = brokenImage;
            }

            sw.Stop();

            Filter = ImageHelper.Filter.Sharpen;
            //MessageBox.Show(sw.Elapsed.TotalSeconds.ToString());
            MessageBox.Show($"{ImageHelper.GetPSNR(initialImage, reconstructedImage)}");
        }
Esempio n. 3
0
        private void btn_Wiener_Click(object sender, EventArgs e)
        {
            var sw = new Stopwatch();

            var initialImage = (Bitmap)pictureBox1.Image;

            var greyImage = ImageHelper.ToGray(initialImage);

            pictureBox1.Image = greyImage;

            var brokenImage = new Bitmap(greyImage);

            switch (Filter)
            {
            case ImageHelper.Filter.Gauss:
                brokenImage = GaussianFilter.Blur(greyImage, kernelSize);
                break;

            case ImageHelper.Filter.Sharpen:
                brokenImage = SharpenFilter.Sharpen(greyImage, kernelSize);
                break;

            case ImageHelper.Filter.MotionLeftToRight:
                brokenImage = MotionFilter.Motion(greyImage, kernelSize, Direction.LeftToRight);
                break;

            case ImageHelper.Filter.MotionRightToLeft:
                brokenImage = MotionFilter.Motion(greyImage, kernelSize, Direction.RightToLeft);
                break;

            default:
                break;
            }

            pictureBox2.Image = brokenImage;

            var coreImage = ImageHelper.GetCoreImage(ImageHelper.ToGray(brokenImage), Filter);

            pictureBox3.Image = coreImage;

            sw.Start();
            var reconstructedImage = WienerFilter.Filter(ImageHelper.ToGray(brokenImage), Filter);

            pictureBox4.Image = reconstructedImage;

            sw.Stop();

            MessageBox.Show($"{ImageHelper.GetPSNR(greyImage, reconstructedImage)}");
            //MessageBox.Show(sw.Elapsed.TotalSeconds.ToString());
        }
        public IEnumerable <IFindResult> Find(IImage image)
        {
            //var bitmap = (BitmapImage) image;
            //bitmap.FromBitmap(this.OtsuFilter(bitmap.ToBitmap()));
            var indencity = this.GetIntensityFrom(image);

            indencity = new SharpenFilter().Filter(indencity);
            indencity = new EdgeFilter().Filter(indencity);
            var histogram = this.CalculateLineHistogram(indencity);
            var borders   = this.DeterminateYCoordinates(histogram, indencity.GetLength(0));
            var frames    = this.DeterminatesWords(borders, this.GetIntensityFrom(image));

            return(frames.Select(f => new FindResult(f.X, f.Y, f.Height, f.Width)));
        }
        private void sharpenFilter_Click(object sender, RoutedEventArgs e)
        {
            if (imageHandler != null)
            {
                // TODO Background worker
                new Thread(() =>
                {
                    SharpenFilter filter = new SharpenFilter();
                    imageHandler.ApplyFilter(image => filter.ApplyFilter(image));

                    Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() =>
                    {
                        filteredImage.Source = BitmapLoader.loadBitmap(imageHandler.getFiltered());
                    }));
                }).Start();
            }
        }
 public IEnumerable<IFindResult> Find(IImage image)
 {
     //var bitmap = (BitmapImage) image;
     //bitmap.FromBitmap(this.OtsuFilter(bitmap.ToBitmap()));
     var indencity = this.GetIntensityFrom(image);
     indencity = new SharpenFilter().Filter(indencity);
     indencity = new EdgeFilter().Filter(indencity);
     var histogram = this.CalculateLineHistogram(indencity);
     var borders = this.DeterminateYCoordinates(histogram, indencity.GetLength(0));
     var frames = this.DeterminatesWords(borders, this.GetIntensityFrom(image));
     return frames.Select(f => new FindResult(f.X, f.Y, f.Height, f.Width));
 }
Esempio n. 7
0
 public static unsafe extern bool vlImageResize(byte* lpSourceRGBA8888, byte* lpDestRGBA8888, uint uiSourceWidth, uint uiSourceHeight, uint uiDestWidth, uint uiDestHeight, MipmapFilter resizeFilter, SharpenFilter sharpenFilter);
Esempio n. 8
0
 public static unsafe extern bool vlImageGenerateMipmaps(uint uiFace, uint uiFrame, MipmapFilter mipmapFilter, SharpenFilter sharpenFilter);
Esempio n. 9
0
 public static unsafe extern bool vlImageGenerateAllMipmaps(MipmapFilter mipmapFilter, SharpenFilter sharpenFilter);
Esempio n. 10
0
 public unsafe static bool vlImageResize(byte* lpSourceRGBA8888, byte* lpDestRGBA8888, uint uiSourceWidth, uint uiSourceHeight, uint uiDestWidth, uint uiDestHeight, MipmapFilter ResizeFilter, SharpenFilter SharpenFilter)
 {
     return IsWow64() ? x64.vlImageResize(lpSourceRGBA8888, lpDestRGBA8888, uiSourceWidth, uiSourceHeight, uiDestWidth, uiDestHeight, ResizeFilter, SharpenFilter) : x86.vlImageResize(lpSourceRGBA8888, lpDestRGBA8888, uiSourceWidth, uiSourceHeight, uiDestWidth, uiDestHeight, ResizeFilter, SharpenFilter);
 }
Esempio n. 11
0
 public unsafe static bool vlImageGenerateAllMipmaps(MipmapFilter MipmapFilter, SharpenFilter SharpenFilter)
 {
     return IsWow64() ? x64.vlImageGenerateAllMipmaps(MipmapFilter, SharpenFilter) : x86.vlImageGenerateAllMipmaps(MipmapFilter, SharpenFilter);
 }
Esempio n. 12
0
    //
    // Helper routines.
    //

    public unsafe static bool vlImageGenerateMipmaps(uint uiFace, uint uiFrame, MipmapFilter MipmapFilter, SharpenFilter SharpenFilter)
    {
        return IsWow64() ? x64.vlImageGenerateMipmaps(uiFace, uiFrame, MipmapFilter, SharpenFilter) : x86.vlImageGenerateMipmaps(uiFace, uiFrame, MipmapFilter, SharpenFilter);
    }
Esempio n. 13
0
 public unsafe static extern bool vlImageGenerateAllMipmaps(MipmapFilter MipmapFilter, SharpenFilter SharpenFilter);
Esempio n. 14
0
        private void ApplyFilter(FilterType filterType, int windowSize = 0)
        {
            Invoke(new ArgUtils.Action(delegate
            {
                pictureBox2.Image = null;
            }));

            IFilter       filter       = null;
            IBinarization binarization = null;

            switch (filterType)
            {
            case FilterType.AdaptiveBinarization:
                binarization = new AdaptiveBinarizatoinFilter(UpdateProgtessBar);
                break;

            case FilterType.BinarizationByOtsu:
                binarization = new BinarizationByOtsu(UpdateProgtessBar);
                break;

            case FilterType.Gaus:
                filter = new GausFilter(windowSize, false, UpdateProgtessBar);
                break;

            case FilterType.Median:
                filter = new Filters.MedianFilter(windowSize, false, UpdateProgtessBar);
                break;

            case FilterType.Gray:
                filter = new GrayFilter();
                break;

            case FilterType.Edge:
                filter = new Filters.EdgeFilter();
                break;

            case FilterType.Sharpen:
                filter = new SharpenFilter();
                break;
            }

            var    bitmap = GetInitialBitmap();
            Bitmap result = null;

            Invoke(new ArgUtils.Action(delegate
            {
                progressBar1.Value = 0;
            }));

            if (filter != null)
            {
                result = filter.GetFilteredImage(bitmap);
            }
            else if (binarization != null)
            {
                result = binarization.GetBinaryImage(bitmap);
            }

            Invoke(new ArgUtils.Action(delegate
            {
                if (progressBar1.Value < 100)
                {
                    progressBar1.Value = 100;
                }
                pictureBox2.Image = result;
            }));
        }