Ejemplo n.º 1
0
        //private void SaveDefaultGesturesButton_Click(object sender, EventArgs e)
        //{
        //    GestureRecognition.Save("default", false);
        //}

        private void LoadGestureSVMButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.Filter           = "SVM Files|*.svm";
            dialog.InitialDirectory = Path.GetFullPath("savedProfiles");
            dialog.CheckFileExists  = true;
            if (dialog.ShowDialog(this) == DialogResult.OK)
            {
                //if((ModifierKeys & Keys.Control) == Keys.Control)
                //{
                //    // merge the default gestures
                //    List<string> profiles = new List<string>();
                //    foreach (string dir in Directory.GetDirectories("savedProfiles"))
                //        profiles.Add((new DirectoryInfo(dir)).Name);
                //    if (profiles.Contains("default")) profiles.Remove("default");

                //    foreach(string profile in profiles)
                //    {
                //        string[] filenames = Directory.GetFiles(Path.Combine("savedProfiles", profile), "*.gest");
                //        foreach(string filename in filenames)
                //        {
                //            string name = Path.GetFileNameWithoutExtension((new FileInfo(filename)).Name);
                //            string newFilename = Path.Combine("savedProfiles", "allGestures", name + ".gest");
                //            if(File.Exists(newFilename))
                //            {
                //                int index = 0;
                //                do
                //                {
                //                    index++;
                //                    newFilename = Path.Combine("savedProfiles", "allGestures", name + "_" + index + ".gest");
                //                } while (File.Exists(newFilename));
                //            }

                //            File.Copy(filename, newFilename);
                //        }
                //    }

                //    return;
                //}

                Task.Factory.StartNew(() =>
                {
                    try
                    {
                        //if (Properties.Settings.Default.OverwriteExistingSamples) GestureRecognition.Reset();

                        //List<string> profiles = new List<string>();
                        //foreach (string dir in Directory.GetDirectories("savedProfiles"))
                        //    profiles.Add((new DirectoryInfo(dir)).Name);
                        //if (profiles.Contains("default")) profiles.Remove("default");
                        //if (profiles.Count == 0)
                        //{
                        //    MessageBox.Show("Error: no saved profiles!");
                        //    return;
                        //}

                        //Debug.WriteLine("Loading all gestures");
                        //foreach (string profile in profiles)
                        //string profile = "allGestures";
                        //GestureRecognition.Load(profile, false, true);

                        //Debug.WriteLine("Training classifier");
                        //GestureRecognition.Train(fullRetrain: false);
                        GestureRecognition.LoadClassifier(dialog.FileName);
                        Logging.LogOtherEvent("Load Gesture SVM: " + dialog.FileName);

                        //GestureRecognition.Load("default");

                        //Debug.WriteLine("Updating display");
                        //UpdateLists();
                        UpdateGestureCount();
                    }
                    catch
                    {
                        MessageBox.Show("Error: could not load gestures");
                    }
                });
            }
        }