Beispiel #1
0
        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 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();
            }
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
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!");
            }
        }