private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            System.DateTime start = System.DateTime.Now;
            drawPanel.Children.Clear();

            grayscalePanel.Source = originalImage;

            List <double[]> Blobs = ImageProcessing.getBlobCoordsUsingLaplacianKernel(originalImageBytes);


            foreach (double[] coord in Blobs)
            {
                Ellipse el = new Ellipse();
                el.Stroke          = System.Windows.Media.Brushes.Red;
                el.StrokeThickness = 1.3;
                double r = coord[2] * originalPanel.ActualWidth;
                el.Width  = 2 * r;
                el.Height = 2 * r;
                Canvas.SetLeft(el, coord[0] * originalPanel.ActualWidth - r);
                Canvas.SetTop(el, coord[1] * originalPanel.ActualHeight - r);
                drawPanel.Children.Add(el);
            }
            drawPanel.Visibility = System.Windows.Visibility.Visible;
            System.DateTime finish = System.DateTime.Now;
            MessageBox.Show(String.Format("It took us {0} sec to find blobs", (finish - start).TotalSeconds.ToString()));
        }
        private void gaussSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (e.NewValue == 1)
            {
                return;
            }
            if (_blobs == null)
            {
                _blobs = ImageProcessing.getBlobCoordsUsingLaplacianKernel(originalImageBytes);
            }

            drawPanel.Children.Clear();

            grayscalePanel.Source = originalImage;

            List <double[]> Blobs = _blobs.OrderByDescending(x => x[3]).Take((int)e.NewValue).ToList();

            foreach (double[] coord in Blobs)
            {
                Ellipse el = new Ellipse();
                el.Stroke          = System.Windows.Media.Brushes.Red;
                el.StrokeThickness = 1.3;
                double r = coord[2] * originalPanel.ActualWidth;
                el.Width  = 2 * r;
                el.Height = 2 * r;
                Canvas.SetLeft(el, coord[0] * originalPanel.ActualWidth - r);
                Canvas.SetTop(el, coord[1] * originalPanel.ActualHeight - r);
                drawPanel.Children.Add(el);
            }
            drawPanel.Visibility = System.Windows.Visibility.Visible;

            //if (e.NewValue <= 1)
            //  return;
            //processedImageBytes = ImageProcessing.getDifferenceOfGaussins(originalImageBytes, (int) e.NewValue);
            //grayscalePanel.Source = ImageConvertor.ByteArrayToImage(processedImageBytes, originalImage.PixelWidth, originalImage.PixelHeight, 1);
        }