private void nextPhrase_Click(object sender, RoutedEventArgs e) { //Random rnd = new Random(); //int temp_idx = rnd.Next(0, phrase_list.Length-1); //Console.WriteLine("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ " + temp_idx); if (random_phrase_inx_counter == phrase_list.Length) { random_phrase_inx_counter = 0; } current_phrase_index = random_phrase_indices[random_phrase_inx_counter++]; currentPhraseName.Text = phrase_list[current_phrase_index]; phrase_name = phrase_list[current_phrase_index]; /*clientInterface.sendData("new_phrase"); * clientInterface.sendData(phrase_name);*/ String current_phrase = phrase_list[current_phrase_index]; char[] delims = { '_' }; String[] words = current_phrase.Split(delims); StringBuilder builder = new StringBuilder(); foreach (string s in words) { builder.Append(s.ToLower()).Append(" "); } String cleanedPhrase = builder.ToString().TrimEnd(new char[] { ' ' }); cleanedPhrase += ".png"; //Console.WriteLine("!!!!!!!!!!!!!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" + cleanedPhrase); BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(System.IO.Path.Combine( @"C:\Users\aslr\Documents\GitHub\SignLanguageRecognition\phrase-sampler-3.0\phrase_images", cleanedPhrase)); image.EndInit(); phraseImage.Source = image; session_number = 1; mainDir = System.IO.Path.Combine(dataWritePath, phrase_name); Directory.CreateDirectory(System.IO.Path.Combine(dataWritePath, phrase_name)); colorFrameWriter.setCurrentPhrase(phrase_name); depthFrameWriter.setCurrentPhrase(phrase_name); jointDataWriter.setCurrentPhrase(phrase_name); }
/// <summary> /// Initializes a new instance of the MainWindow class /// </summary> public MainWindow() { // only one sensor is currently supported this.kinectSensor = KinectSensor.GetDefault(); // set IsAvailableChanged event notifier this.kinectSensor.IsAvailableChanged += this.Sensor_IsAvailableChanged; // open the sensor this.kinectSensor.Open(); this._reader = kinectSensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth); this._reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived; // set the status text this.StatusText = this.kinectSensor.IsAvailable ? Properties.Resources.RunningStatusText : Properties.Resources.NoSensorStatusText; // open the reader for the body frames this.bodyFrameReader = this.kinectSensor.BodyFrameSource.OpenReader(); // set the BodyFramedArrived event notifier this.bodyFrameReader.FrameArrived += this.Reader_BodyFrameArrived; // initialize the BodyViewer object for displaying tracked bodies in the UI this.kinectBodyView = new KinectBodyView(this.kinectSensor); // initialize the gesture detection objects for our gestures this.gestureDetectorList = new List <GestureDetector>(); // initialize the MainWindow this.InitializeComponent(); // set our data context objects for display in UI this.DataContext = this; this.kinectBodyViewbox.DataContext = this.kinectBodyView; // connect to htk server via tcpClient //this.clientInterface = ClientInterface.getClientInstance(); //clientInterface.connect(); //Console.WriteLine("connect to the client interface \n " + clientInterface.GetHashCode() + "\n"); //clientInterface.disconnect(); // create a gesture detector for each body (6 bodies => 6 detectors) and create content controls to display results in the UI //int col0Row = 0, col1Row = 0; this.colorFrameWriter = new ColorFrameWriter(); this.depthFrameWriter = new DepthFrameWriter(); this.jointDataWriter = new JointDataWriter(); this.totalCapturedFrames_joints = 0; this.totalCapturedFrames_color = 0; this.totalCapturedFrames_depth = 0; this.framesCapturedInPhrase = 0; this.phrase_indices = new int[phrase_list.Length]; if (File.Exists(@".\indices_state.txt")) { System.IO.StreamReader file = new System.IO.StreamReader(@".\indices_state.txt"); String indices_line = file.ReadLine(); String[] indices_states = indices_line.Split(' '); for (int i = 0; i < phrase_indices.Length; i++) { if (i >= indices_states.Length) { this.phrase_indices[i] = 0; } else { this.phrase_indices[i] = Int32.Parse(indices_states[i]); } } } else { for (int i = 0; i < phrase_indices.Length; i++) { this.phrase_indices[i] = 0; } } random_phrase_indices = new int[phrase_list.Length]; random_phrase_inx_counter = 0; for (int i = 0; i < phrase_list.Length; i++) { random_phrase_indices[i] = i; } new Random().Shuffle(random_phrase_indices); session_number = 1; int maxBodies = this.kinectSensor.BodyFrameSource.BodyCount; for (int i = 0; i < maxBodies; ++i) { GestureResultView result = new GestureResultView(i, false, false, 0.0f); GestureDetector detector = new GestureDetector(this.kinectSensor, result); this.gestureDetectorList.Add(detector); // split gesture results across the first two columns of the content grid ContentControl contentControl = new ContentControl(); contentControl.Content = this.gestureDetectorList[i].GestureResultView; /* * if (i % 2 == 0) * { * // Gesture results for bodies: 0, 2, 4 * Grid.SetColumn(contentControl, 0); * Grid.SetRow(contentControl, col0Row); ++col0Row; * } * else * { * // Gesture results for bodies: 1, 3, 5 * Grid.SetColumn(contentControl, 1); * Grid.SetRow(contentControl, col1Row); ++col1Row; * } * * this.contentGrid.Children.Add(contentControl);*/ } prevDeleteButton.Click += deletePreviousSample; currentPhraseName.Text = phrase_list[current_phrase_index]; String current_phrase = phrase_list[current_phrase_index]; char[] delims = { '_' }; String[] words = current_phrase.Split(delims); StringBuilder builder = new StringBuilder(); foreach (string s in words) { builder.Append(s.ToLower()).Append(" "); } String cleanedPhrase = builder.ToString().TrimEnd(new char[] { ' ' }); cleanedPhrase += ".png"; //Console.WriteLine("!!!!!!!!!!!!!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" + cleanedPhrase); BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(System.IO.Path.Combine( @"C:\Users\aslr\Documents\GitHub\SignLanguageRecognition\phrase-sampler-3.0\phrase_images", cleanedPhrase)); image.EndInit(); phraseImage.Source = image; phrase_name = phrase_list[current_phrase_index]; /*clientInterface.sendData("new_phrase"); * clientInterface.sendData(phrase_name);*/ //String mainDir = System.IO.Path.Combine(@"C:\Users\aslr\Documents\aslr-data", phrase_name); //String colorDir = System.IO.Path.Combine(mainDir, "color"); //String depthDir = System.IO.Path.Combine(mainDir, "depth"); //Console.WriteLine("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& " + kinect.DepthStream.FrameWidth);\ mainDir = System.IO.Path.Combine(dataWritePath, phrase_name); //String colorDir = System.IO.Path.Combine(mainDir, "color"); //String depthDir = System.IO.Path.Combine(mainDir, "depth"); System.IO.Directory.CreateDirectory(mainDir); //System.IO.Directory.CreateDirectory(colorDir); //System.IO.Directory.CreateDirectory(depthDir); //System.IO.Directory.CreateDirectory(mainDir); //System.IO.Directory.CreateDirectory(colorDir); //System.IO.Directory.CreateDirectory(depthDir); colorFrameWriter.setCurrentPhrase(phrase_name); depthFrameWriter.setCurrentPhrase(phrase_name); jointDataWriter.setCurrentPhrase(phrase_name); }
/// <summary> /// Initializes a new instance of the MainWindow class /// </summary> public MainWindow() { // only one sensor is currently supported this.kinectSensor = KinectSensor.GetDefault(); // set IsAvailableChanged event notifier this.kinectSensor.IsAvailableChanged += this.Sensor_IsAvailableChanged; // open the sensor this.kinectSensor.Open(); this._reader = kinectSensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth); this._reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived; // set the status text this.StatusText = this.kinectSensor.IsAvailable ? Properties.Resources.RunningStatusText : Properties.Resources.NoSensorStatusText; // open the reader for the body frames this.bodyFrameReader = this.kinectSensor.BodyFrameSource.OpenReader(); // set the BodyFramedArrived event notifier this.bodyFrameReader.FrameArrived += this.Reader_BodyFrameArrived; // initialize the BodyViewer object for displaying tracked bodies in the UI this.kinectBodyView = new KinectBodyView(this.kinectSensor); // initialize the gesture detection objects for our gestures this.gestureDetectorList = new List<GestureDetector>(); // initialize the MainWindow this.InitializeComponent(); // set our data context objects for display in UI this.DataContext = this; this.kinectBodyViewbox.DataContext = this.kinectBodyView; // connect to htk server via tcpClient //this.clientInterface = ClientInterface.getClientInstance(); //clientInterface.connect(); //Console.WriteLine("connect to the client interface \n " + clientInterface.GetHashCode() + "\n"); //clientInterface.disconnect(); // create a gesture detector for each body (6 bodies => 6 detectors) and create content controls to display results in the UI //int col0Row = 0, col1Row = 0; this.colorFrameWriter = new ColorFrameWriter(); this.depthFrameWriter = new DepthFrameWriter(); this.jointDataWriter = new JointDataWriter(); this.totalCapturedFrames_joints = 0; this.totalCapturedFrames_color = 0; this.totalCapturedFrames_depth = 0; session_number = 1; int maxBodies = this.kinectSensor.BodyFrameSource.BodyCount; for (int i = 0; i < maxBodies; ++i) { GestureResultView result = new GestureResultView(i, false, false, 0.0f); GestureDetector detector = new GestureDetector(this.kinectSensor, result); this.gestureDetectorList.Add(detector); // split gesture results across the first two columns of the content grid ContentControl contentControl = new ContentControl(); contentControl.Content = this.gestureDetectorList[i].GestureResultView; /* if (i % 2 == 0) { // Gesture results for bodies: 0, 2, 4 Grid.SetColumn(contentControl, 0); Grid.SetRow(contentControl, col0Row); ++col0Row; } else { // Gesture results for bodies: 1, 3, 5 Grid.SetColumn(contentControl, 1); Grid.SetRow(contentControl, col1Row); ++col1Row; } this.contentGrid.Children.Add(contentControl);*/ } prevDeleteButton.Click += deletePreviousSample; currentPhraseName.Text = phrase_list[current_phrase_index]; String current_phrase = phrase_list[current_phrase_index]; char[] delims = { '_' }; String[] words = current_phrase.Split(delims); StringBuilder builder = new StringBuilder(); foreach (string s in words) { builder.Append(s.ToLower()).Append(" "); } String cleanedPhrase = builder.ToString().TrimEnd(new char[] { ' ' }); cleanedPhrase += ".png"; //Console.WriteLine("!!!!!!!!!!!!!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" + cleanedPhrase); BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(System.IO.Path.Combine( @"C:\Users\aslr\Documents\GitHub\SignLanguageRecognition\phrase-sampler-2.0\phrase_images", cleanedPhrase)); image.EndInit(); phraseImage.Source = image; phrase_name = phrase_list[current_phrase_index]; /*clientInterface.sendData("new_phrase"); clientInterface.sendData(phrase_name);*/ //String mainDir = System.IO.Path.Combine(@"C:\Users\aslr\Documents\aslr-data", phrase_name); //String colorDir = System.IO.Path.Combine(mainDir, "color"); //String depthDir = System.IO.Path.Combine(mainDir, "depth"); //Console.WriteLine("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& " + kinect.DepthStream.FrameWidth);\ mainDir = System.IO.Path.Combine(dataWritePath, phrase_name); //String colorDir = System.IO.Path.Combine(mainDir, "color"); //String depthDir = System.IO.Path.Combine(mainDir, "depth"); System.IO.Directory.CreateDirectory(mainDir); //System.IO.Directory.CreateDirectory(colorDir); //System.IO.Directory.CreateDirectory(depthDir); //System.IO.Directory.CreateDirectory(mainDir); //System.IO.Directory.CreateDirectory(colorDir); //System.IO.Directory.CreateDirectory(depthDir); colorFrameWriter.setCurrentPhrase(phrase_name); depthFrameWriter.setCurrentPhrase(phrase_name); jointDataWriter.setCurrentPhrase(phrase_name); }