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); }
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; }
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); }
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); }
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); }
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); } }
public Histogram(Mat srcImage) { InitializeComponent(); initializeToggles(); this.srcImage = srcImage; imgSource.Source = HeraclesHelper.ToBitmapSource(srcImage); InitChart(); CalculateHistograms(); CalculateCdf(); DataContext = this; }
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); }
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; } } }
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); }
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); }
private void BtnSavePreview_Click(object sender, RoutedEventArgs e) { HeraclesHelper.SaveUsingEncoder(imgHighResolutionPreview, "MyImage"); }