private void GrayScaleButton(object sender, RoutedEventArgs e) { if (img == null) { System.Windows.MessageBox.Show("Generate an image first"); return; } img.GrayScale(); this.ClassesImg.Source = img.Source(); }
private void LoadButton(object sender, RoutedEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { System.Drawing.Bitmap loadedfile = new System.Drawing.Bitmap(dialog.FileName); img = new Pattern_Recognition.Model.Image(loadedfile); this.ClassesImg.Source = img.Source(); classes = 0; } }
private void KickoffButton(object sender, RoutedEventArgs e) { Classes.Clear(); Regex regex = new Regex("[^0-9.-]+"); if (!regex.IsMatch(ClassABMeau.Text) && !regex.IsMatch(ClassARMeau.Text) && !regex.IsMatch(ClassAGMeau.Text) && !regex.IsMatch(ClassBBMeau.Text) && !regex.IsMatch(ClassBRMeau.Text) && !regex.IsMatch(ClassBGMeau.Text) && !regex.IsMatch(ClassCBMeau.Text) && !regex.IsMatch(ClassCRMeau.Text) && !regex.IsMatch(ClassCGMeau.Text) && !regex.IsMatch(ClassDBMeau.Text) && !regex.IsMatch(ClassDRMeau.Text) && !regex.IsMatch(ClassDGMeau.Text) && !regex.IsMatch(ClassABSigma.Text) && !regex.IsMatch(ClassARSigma.Text) && !regex.IsMatch(ClassAGSigma.Text) && !regex.IsMatch(ClassBBSigma.Text) && !regex.IsMatch(ClassBRSigma.Text) && !regex.IsMatch(ClassBGSigma.Text) && !regex.IsMatch(ClassCBSigma.Text) && !regex.IsMatch(ClassCRSigma.Text) && !regex.IsMatch(ClassCGSigma.Text) && !regex.IsMatch(ClassDBSigma.Text) && !regex.IsMatch(ClassDRSigma.Text) && !regex.IsMatch(ClassDGSigma.Text) && !regex.IsMatch(Width.Text) && !regex.IsMatch(Height.Text) ) { Classes.Add(new RGB { RMeau = int.Parse(ClassARMeau.Text), RSigma = int.Parse(ClassARSigma.Text), GMeau = int.Parse(ClassAGMeau.Text), GSigma = int.Parse(ClassAGSigma.Text), BMeau = int.Parse(ClassABMeau.Text), BSigma = int.Parse(ClassABSigma.Text), }); Classes.Add(new RGB { RMeau = int.Parse(ClassBRMeau.Text), RSigma = int.Parse(ClassBRSigma.Text), GMeau = int.Parse(ClassBGMeau.Text), GSigma = int.Parse(ClassBGSigma.Text), BMeau = int.Parse(ClassBBMeau.Text), BSigma = int.Parse(ClassBBSigma.Text), }); Classes.Add(new RGB { RMeau = int.Parse(ClassCRMeau.Text), RSigma = int.Parse(ClassCRSigma.Text), GMeau = int.Parse(ClassCGMeau.Text), GSigma = int.Parse(ClassCGSigma.Text), BMeau = int.Parse(ClassCBMeau.Text), BSigma = int.Parse(ClassCBSigma.Text), }); Classes.Add(new RGB { RMeau = int.Parse(ClassDRMeau.Text), RSigma = int.Parse(ClassDRSigma.Text), GMeau = int.Parse(ClassDGMeau.Text), GSigma = int.Parse(ClassDGSigma.Text), BMeau = int.Parse(ClassDBMeau.Text), BSigma = int.Parse(ClassDBSigma.Text), }); img = TrainModel.GenerateTrainingDataset(ref Classes, uint.Parse(Width.Text), uint.Parse(Height.Text)); this.ClassesImg.Source = img.Source(); } else System.Windows.MessageBox.Show("Make sure that all your inputs are numbers only!"); }
private void ClassificationButton(object sender, RoutedEventArgs e) { if (Combo.SelectedIndex == 0) { m[0] = (Classes[0].BMeau + Classes[0].GMeau + Classes[0].RMeau) / 3; m[1] = (Classes[1].BMeau + Classes[1].GMeau + Classes[1].RMeau) / 3; m[2] = (Classes[2].BMeau + Classes[2].GMeau + Classes[2].RMeau) / 3; m[3] = (Classes[3].BMeau + Classes[3].GMeau + Classes[3].RMeau) / 3; s[0] = (Classes[0].BSigma + Classes[0].GSigma + Classes[0].RSigma) / 3; s[1] = (Classes[1].BSigma + Classes[1].GSigma + Classes[1].RSigma) / 3; s[2] = (Classes[2].BSigma + Classes[2].GSigma + Classes[2].RSigma) / 3; s[3] = (Classes[3].BSigma + Classes[3].GSigma + Classes[3].RSigma) / 3; img = ScoreModel.ScoreSingleFeature(img, ref m, ref s, ref segments); this.ClassesImg.Source = img.Source(); } else if (Combo.SelectedIndex == 1) { int[,] mus = new int[4, 3]; int[,] sigmas = new int[4, 3]; mus[0, 0] = int.Parse(ClassARMeau.Text); mus[0, 1] = int.Parse(ClassAGMeau.Text); mus[0, 2] = int.Parse(ClassABMeau.Text); mus[1, 0] = int.Parse(ClassBRMeau.Text); mus[1, 1] = int.Parse(ClassBGMeau.Text); mus[1, 2] = int.Parse(ClassBBMeau.Text); mus[2, 0] = int.Parse(ClassCRMeau.Text); mus[2, 1] = int.Parse(ClassCGMeau.Text); mus[2, 2] = int.Parse(ClassCBMeau.Text); mus[3, 0] = int.Parse(ClassDRMeau.Text); mus[3, 1] = int.Parse(ClassDGMeau.Text); mus[3, 2] = int.Parse(ClassDBMeau.Text); sigmas[0, 0] = int.Parse(ClassARSigma.Text); sigmas[0, 1] = int.Parse(ClassAGSigma.Text); sigmas[0, 2] = int.Parse(ClassABSigma.Text); sigmas[1, 0] = int.Parse(ClassBRSigma.Text); sigmas[1, 1] = int.Parse(ClassBGSigma.Text); sigmas[1, 2] = int.Parse(ClassBBSigma.Text); sigmas[2, 0] = int.Parse(ClassCRSigma.Text); sigmas[2, 1] = int.Parse(ClassCGSigma.Text); sigmas[2, 2] = int.Parse(ClassCBSigma.Text); sigmas[3, 0] = int.Parse(ClassDRSigma.Text); sigmas[3, 1] = int.Parse(ClassDGSigma.Text); sigmas[3, 2] = int.Parse(ClassDBSigma.Text); double[,] loosmat = new double[5, 4]; for (int i = 0; i < 5; ++i) { loosmat[i, 0] = LoosGrid[i + 1].A; loosmat[i, 1] = LoosGrid[i + 1].B; loosmat[i, 2] = LoosGrid[i + 1].C; loosmat[i, 3] = LoosGrid[i + 1].D; } this.ClassesImg.Source = ScoreModel.ScoreMultiFeature(img, ref mus, ref sigmas, ref segments, ref loosmat).Source(); ObservableCollection<ABC> grid = new ObservableCollection<ABC>(); for (int i = 0; i < 4; ++i) { grid.Add(new ABC()); grid[i].A = ScoreModel.ConfusionMat[i, 0]; grid[i].B = ScoreModel.ConfusionMat[i, 1]; grid[i].C = ScoreModel.ConfusionMat[i, 2]; grid[i].D = ScoreModel.ConfusionMat[i, 3]; grid[i].Black = ScoreModel.ConfusionMat[i, 4]; } double x = ScoreModel.ConfusionMat[0, 0] + ScoreModel.ConfusionMat[1, 1] + ScoreModel.ConfusionMat[2, 2] + ScoreModel.ConfusionMat[3, 3]; ; x /= img.Width * img.Height; x *= 100; this.ConfussionGrid.ItemsSource = grid; this.AccuracyTextBlock.Visibility = Visibility.Visible; this.AccuracyTextBlock.Text ="Accuracy : "+ x.ToString() + " %"; //= img.Source(); } }
private void ClassificationButton(object sender, RoutedEventArgs e) { if (Combo.SelectedIndex == 0) { m[0] = (Classes[0].BMeau + Classes[0].GMeau + Classes[0].RMeau) / 3; m[1] = (Classes[1].BMeau + Classes[1].GMeau + Classes[1].RMeau) / 3; m[2] = (Classes[2].BMeau + Classes[2].GMeau + Classes[2].RMeau) / 3; m[3] = (Classes[3].BMeau + Classes[3].GMeau + Classes[3].RMeau) / 3; s[0] = (Classes[0].BSigma + Classes[0].GSigma + Classes[0].RSigma) / 3; s[1] = (Classes[1].BSigma + Classes[1].GSigma + Classes[1].RSigma) / 3; s[2] = (Classes[2].BSigma + Classes[2].GSigma + Classes[2].RSigma) / 3; s[3] = (Classes[3].BSigma + Classes[3].GSigma + Classes[3].RSigma) / 3; img = ScoreModel.ScoreSingleFeature(img, ref m, ref s, ref segments); this.ClassesImg.Source = img.Source(); } else if (Combo.SelectedIndex == 1) { int[,] mus = new int[4, 3]; int[,] sigmas = new int[4, 3]; mus[0, 0] = int.Parse(ClassARMeau.Text); mus[0, 1] = int.Parse(ClassAGMeau.Text); mus[0, 2] = int.Parse(ClassABMeau.Text); mus[1, 0] = int.Parse(ClassBRMeau.Text); mus[1, 1] = int.Parse(ClassBGMeau.Text); mus[1, 2] = int.Parse(ClassBBMeau.Text); mus[2, 0] = int.Parse(ClassCRMeau.Text); mus[2, 1] = int.Parse(ClassCGMeau.Text); mus[2, 2] = int.Parse(ClassCBMeau.Text); mus[3, 0] = int.Parse(ClassDRMeau.Text); mus[3, 1] = int.Parse(ClassDGMeau.Text); mus[3, 2] = int.Parse(ClassDBMeau.Text); sigmas[0, 0] = int.Parse(ClassARSigma.Text); sigmas[0, 1] = int.Parse(ClassAGSigma.Text); sigmas[0, 2] = int.Parse(ClassABSigma.Text); sigmas[1, 0] = int.Parse(ClassBRSigma.Text); sigmas[1, 1] = int.Parse(ClassBGSigma.Text); sigmas[1, 2] = int.Parse(ClassBBSigma.Text); sigmas[2, 0] = int.Parse(ClassCRSigma.Text); sigmas[2, 1] = int.Parse(ClassCGSigma.Text); sigmas[2, 2] = int.Parse(ClassCBSigma.Text); sigmas[3, 0] = int.Parse(ClassDRSigma.Text); sigmas[3, 1] = int.Parse(ClassDGSigma.Text); sigmas[3, 2] = int.Parse(ClassDBSigma.Text); double[,] loosmat = new double[5, 4]; for (int i = 0; i < 5; ++i) { loosmat[i, 0] = LoosGrid[i + 1].A; loosmat[i, 1] = LoosGrid[i + 1].B; loosmat[i, 2] = LoosGrid[i + 1].C; loosmat[i, 3] = LoosGrid[i + 1].D; } this.ClassesImg.Source = ScoreModel.ScoreMultiFeature(img, ref mus, ref sigmas, ref segments, ref loosmat).Source(); ObservableCollection <ABC> grid = new ObservableCollection <ABC>(); for (int i = 0; i < 4; ++i) { grid.Add(new ABC()); grid[i].A = ScoreModel.ConfusionMat[i, 0]; grid[i].B = ScoreModel.ConfusionMat[i, 1]; grid[i].C = ScoreModel.ConfusionMat[i, 2]; grid[i].D = ScoreModel.ConfusionMat[i, 3]; grid[i].Black = ScoreModel.ConfusionMat[i, 4]; } double x = ScoreModel.ConfusionMat[0, 0] + ScoreModel.ConfusionMat[1, 1] + ScoreModel.ConfusionMat[2, 2] + ScoreModel.ConfusionMat[3, 3];; x /= img.Width * img.Height; x *= 100; this.ConfussionGrid.ItemsSource = grid; this.AccuracyTextBlock.Visibility = Visibility.Visible; this.AccuracyTextBlock.Text = "Accuracy : " + x.ToString() + " %"; //= img.Source(); } }
private void KickoffButton(object sender, RoutedEventArgs e) { Classes.Clear(); Regex regex = new Regex("[^0-9.-]+"); if (!regex.IsMatch(ClassABMeau.Text) && !regex.IsMatch(ClassARMeau.Text) && !regex.IsMatch(ClassAGMeau.Text) && !regex.IsMatch(ClassBBMeau.Text) && !regex.IsMatch(ClassBRMeau.Text) && !regex.IsMatch(ClassBGMeau.Text) && !regex.IsMatch(ClassCBMeau.Text) && !regex.IsMatch(ClassCRMeau.Text) && !regex.IsMatch(ClassCGMeau.Text) && !regex.IsMatch(ClassDBMeau.Text) && !regex.IsMatch(ClassDRMeau.Text) && !regex.IsMatch(ClassDGMeau.Text) && !regex.IsMatch(ClassABSigma.Text) && !regex.IsMatch(ClassARSigma.Text) && !regex.IsMatch(ClassAGSigma.Text) && !regex.IsMatch(ClassBBSigma.Text) && !regex.IsMatch(ClassBRSigma.Text) && !regex.IsMatch(ClassBGSigma.Text) && !regex.IsMatch(ClassCBSigma.Text) && !regex.IsMatch(ClassCRSigma.Text) && !regex.IsMatch(ClassCGSigma.Text) && !regex.IsMatch(ClassDBSigma.Text) && !regex.IsMatch(ClassDRSigma.Text) && !regex.IsMatch(ClassDGSigma.Text) && !regex.IsMatch(Width.Text) && !regex.IsMatch(Height.Text) ) { Classes.Add(new RGB { RMeau = int.Parse(ClassARMeau.Text), RSigma = int.Parse(ClassARSigma.Text), GMeau = int.Parse(ClassAGMeau.Text), GSigma = int.Parse(ClassAGSigma.Text), BMeau = int.Parse(ClassABMeau.Text), BSigma = int.Parse(ClassABSigma.Text), }); Classes.Add(new RGB { RMeau = int.Parse(ClassBRMeau.Text), RSigma = int.Parse(ClassBRSigma.Text), GMeau = int.Parse(ClassBGMeau.Text), GSigma = int.Parse(ClassBGSigma.Text), BMeau = int.Parse(ClassBBMeau.Text), BSigma = int.Parse(ClassBBSigma.Text), }); Classes.Add(new RGB { RMeau = int.Parse(ClassCRMeau.Text), RSigma = int.Parse(ClassCRSigma.Text), GMeau = int.Parse(ClassCGMeau.Text), GSigma = int.Parse(ClassCGSigma.Text), BMeau = int.Parse(ClassCBMeau.Text), BSigma = int.Parse(ClassCBSigma.Text), }); Classes.Add(new RGB { RMeau = int.Parse(ClassDRMeau.Text), RSigma = int.Parse(ClassDRSigma.Text), GMeau = int.Parse(ClassDGMeau.Text), GSigma = int.Parse(ClassDGSigma.Text), BMeau = int.Parse(ClassDBMeau.Text), BSigma = int.Parse(ClassDBSigma.Text), }); img = TrainModel.GenerateTrainingDataset(ref Classes, uint.Parse(Width.Text), uint.Parse(Height.Text)); this.ClassesImg.Source = img.Source(); } else { System.Windows.MessageBox.Show("Make sure that all your inputs are numbers only!"); } }