コード例 #1
0
ファイル: AppSettings.xaml.cs プロジェクト: vizlab-uni/pew
        private void BtnUpdatePip_Click(object sender, RoutedEventArgs e)
        {
            string s = Properties.Resources.pipUpdate;

            //TODO: Discover why this script don't work properly
            HeraclesHelper.RunPromptCommand(s);
        }
コード例 #2
0
ファイル: PedroTest.xaml.cs プロジェクト: vizlab-uni/pew
        private void CreateRGBTinyImages(Mat src)
        {
            Mat coloredTinyImage = HeraclesHelper.RescaleImage(src, 32);

            Mat[] rgbImages = HeraclesHelper.GetColorChannels(coloredTinyImage);

            colorChannelElements.Clear();

            colorChannelElements.Add(new ColorChannelItem
            {
                IsSelected = true, Name = "RGB", Image = HeraclesHelper.ToBitmapSource(coloredTinyImage)
            });
            colorChannelElements.Add(new ColorChannelItem
            {
                IsSelected = true, Name = "Red", Image = HeraclesHelper.ToBitmapSource(rgbImages[0])
            });
            colorChannelElements.Add(new ColorChannelItem
            {
                IsSelected = true, Name = "Green", Image = HeraclesHelper.ToBitmapSource(rgbImages[1])
            });
            colorChannelElements.Add(new ColorChannelItem
            {
                IsSelected = true, Name = "Blue", Image = HeraclesHelper.ToBitmapSource(rgbImages[2])
            });

            icTodoList.ItemsSource = colorChannelElements;
        }
コード例 #3
0
        public override Mat ApplyFilter()
        {
            Mat result = null;

            try
            {
                switch (Inp_ColorSpace.Value)
                {
                //TODO: Actually the RGB and RGBA Converter need to be reviwed
                case ColorSpace.RGB:
                case ColorSpace.RGBA:
                    result = Inp_Mat.Value;
                    break;

                case ColorSpace.GRAYSCALE:
                    result = HeraclesHelper.GetGrayscaleImage(Inp_Mat.Value);
                    break;

                case ColorSpace.HSV:
                    result = HeraclesHelper.ConvertToHSV(Inp_Mat.Value);
                    break;

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                //TODO: Deal with this error
                Console.WriteLine("[ColorSpaceFilterNode](ApplyFilter) -> " + e.Message);
            }

            SetPreviewAndOutput(result);
            return(result);
        }
コード例 #4
0
        private void CalculateHistograms()
        {
            redHistogramData   = HeraclesHelper.GetHistogramOfImage(srcImage, 'r');
            greenHistogramData = HeraclesHelper.GetHistogramOfImage(srcImage, 'g');
            blueHistogramData  = HeraclesHelper.GetHistogramOfImage(srcImage, 'b');

            //ColumnSeries redCs = CreateColumnSerie(redHistogramData, "Red");
            //ColumnSeries greenCs = CreateColumnSerie(greenHistogramData, "Green");
            //ColumnSeries blueCs = CreateColumnSerie(blueHistogramData, "Blue");

            //histogramChart.Add(redCs);
            //histogramChart.Add(greenCs);
            //histogramChart.Add(blueCs);
            Brush rb = new SolidColorBrush(Brushes.Red.Color);

            rb.Opacity = 0.3;
            Brush gb = new SolidColorBrush(Brushes.Green.Color);

            gb.Opacity = 0.3;
            Brush bb = new SolidColorBrush(Brushes.Blue.Color);

            bb.Opacity = 0.3;
            LineSeries redLs   = CreateLineSerie(redHistogramData, "Red", Brushes.Red, 1, 0, null, rb);
            LineSeries greenLs = CreateLineSerie(greenHistogramData, "Green", Brushes.Green, 1, 0, null, gb);
            LineSeries blueLs  = CreateLineSerie(blueHistogramData, "Blue", Brushes.Blue, 1, 0, null, bb);

            histogramChart.Add(redLs);
            histogramChart.Add(greenLs);
            histogramChart.Add(blueLs);
        }
コード例 #5
0
        void OpenImage(string path)
        {
            srcImage_Gray = new Mat();
            srcImage      = CvInvoke.Imread(path, Emgu.CV.CvEnum.ImreadModes.AnyColor);
            CvInvoke.CvtColor(srcImage, srcImage_Gray, ColorConversion.Bgra2Gray);

            previewImage = new Mat(srcImage.Rows, srcImage.Cols, srcImage_Gray.Depth, srcImage_Gray.NumberOfChannels);

            imgSource.Source = HeraclesHelper.ToBitmapSource(srcImage);
        }
コード例 #6
0
ファイル: PedroTest.xaml.cs プロジェクト: vizlab-uni/pew
        private void BtnOpenFile_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (openFileDialog.ShowDialog() == true)
            {
                //Load image to srcImage
                srcImage     = CvInvoke.Imread(openFileDialog.FileName, Emgu.CV.CvEnum.ImreadModes.AnyColor);
                previewImage = srcImage;
                CreateRGBTinyImages(srcImage);

                imgSource.Source = HeraclesHelper.ToBitmapSource(srcImage);
            }
        }
コード例 #7
0
        public Histogram(Mat srcImage)
        {
            InitializeComponent();

            initializeToggles();

            this.srcImage    = srcImage;
            imgSource.Source = HeraclesHelper.ToBitmapSource(srcImage);
            InitChart();
            CalculateHistograms();
            CalculateCdf();

            DataContext = this;
        }
コード例 #8
0
        private void BtnRun_Click(object sender, RoutedEventArgs e)
        {
            //TODO: Discover why this script don't work properly
            HeraclesHelper.RunPromptCommand(Properties.Resources.pipreqs);

            pnlProcessing.Visibility = Visibility.Visible;

            //TODO: Made this paths be set by ui
            string args = "C:/Users/prossa/Documents/_Projects/ProjectHeracles/PYTHONSCRIPTS/NumberDetector/four.jpg"
                          + " C:/Users/prossa/Documents/_Projects/ProjectHeracles/PYTHONSCRIPTS/NumberDetector/model.h5"
                          + " C:/Users/prossa/Documents/_Projects/ProjectHeracles/PYTHONSCRIPTS/NumberDetector/weights.h5";

            txbCodeOutput.Text = string.Empty;
            HeraclesHelper.RunPythonScript(scriptPath, args, PythonScriptDataOut, PythonScriptError, ScriptEnd);
        }
コード例 #9
0
        private void SetPreviewPixel(Dictionary <int, List <int[]> > histoPixels, int pixelColor)
        {
            for (int i = 0; i < histoPixels.Count; i++)
            {
                if (i == pixelColor)
                {
                    for (int j = 0; j < histoPixels[i].Count; j++)
                    {
                        previewImage.GetData().SetValue((byte)pixelColor, histoPixels[i][j]);
                    }

                    imgPreview.Source = HeraclesHelper.ToBitmapSource(previewImage);
                    return;
                }
            }
        }
コード例 #10
0
ファイル: PedroTest.xaml.cs プロジェクト: vizlab-uni/pew
        private void TglColorElements_Click(object sender, RoutedEventArgs e)
        {
            string tglName = ((ToggleButton)sender).CommandParameter.ToString();

            //TODO:Solve this, actually the RGB element don`t work properly
            //Deal when click specifically on RGB Toggle
            if (tglName.Equals("RGB"))
            {
                if ((bool)((ToggleButton)sender).IsChecked)
                {
                    previewImage     = HeraclesHelper.SetImageChannels(srcImage, true, true, true);
                    imgSource.Source = HeraclesHelper.ToBitmapSource(previewImage);
                    return;
                }
                else
                {
                    //if try to pass to unchecked, force to Checked
                    colorChannelElements[0].IsSelected = true;
                    ((ToggleButton)sender).IsChecked   = true;
                    return;
                }
            }

            bool[] tglStates = { true, true, true };

            //starts in 1 to ignore rgb element
            for (int i = 1; i < colorChannelElements.Count; i++)
            {
                tglStates[i - 1] = colorChannelElements[i].IsSelected;

                //If some channel is disabled, disable RGB too
                if (!colorChannelElements[i].IsSelected)
                {
                    colorChannelElements[0].IsSelected = false;
                }
            }
            //Set image source with the preview image with selected channels
            previewImage     = HeraclesHelper.SetImageChannels(srcImage, tglStates[0], tglStates[1], tglStates[2]);
            imgSource.Source = HeraclesHelper.ToBitmapSource(previewImage);
        }
コード例 #11
0
        private void CalculateCdf()
        {
            int numberOfPixels = this.srcImage.Height * this.srcImage.Width;

            this.redCDFData   = HeraclesHelper.GetCDFOfHistogram(this.redHistogramData, numberOfPixels);
            this.greenCDFData = HeraclesHelper.GetCDFOfHistogram(this.greenHistogramData, numberOfPixels);
            this.blueCDFData  = HeraclesHelper.GetCDFOfHistogram(this.blueHistogramData, numberOfPixels);

            LineSeries redLs = CreateLineSerie(redCDFData, "Red CDF", Brushes.Red, 1, 1, new DoubleCollection {
                2
            });
            LineSeries greenLs = CreateLineSerie(greenCDFData, "Green CDF", Brushes.Green, 1, 1, new DoubleCollection {
                2
            });
            LineSeries blueLs = CreateLineSerie(blueCDFData, "Blue CDF", Brushes.Blue, 1, 1, new DoubleCollection {
                2
            });

            histogramChart.Add(redLs);
            histogramChart.Add(greenLs);
            histogramChart.Add(blueLs);
        }
コード例 #12
0
 private void BtnSavePreview_Click(object sender, RoutedEventArgs e)
 {
     HeraclesHelper.SaveUsingEncoder(imgHighResolutionPreview, "MyImage");
 }