private void saveGestureBtn_Click(object sender, RoutedEventArgs e) { // save to file string time = System.DateTime.Now.ToString("hh'-'mm'-'ss", CultureInfo.CurrentUICulture.DateTimeFormat); string gesture_name = (gestureComboBox.SelectedItem as ComboBoxItem).Content.ToString(); string myPhotos = "D:"; //Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); string skeletonpath = myPhotos + "\\gdata\\" + gesture_name + "\\Kinect_skeleton_" + time + ".xml"; // save data from start label to end label int start_id = int.Parse(replay_startLabel.Content.ToString()); int end_id = int.Parse(replay_endLabel.Content.ToString()); // remove end part first so front id will not change gesture_capture_data.RemoveRange(end_id + 1, gesture_capture_data.Count - end_id - 1); gesture_capture_data.RemoveRange(0, start_id); KinectRecorder.WriteToSkeletonFile(skeletonpath, gesture_capture_data); gesture_capture_data.Clear(); frame_id = 0; statusbarLabel.Content = "Save skeletons to file: " + skeletonpath; DeactivateReplay(); saveGestureBtn.IsEnabled = false; }
/// <summary> /// Save current kinect data /// </summary> private void saveBtn_Click(object sender, RoutedEventArgs e) { if (kinect_sensor == null || !kinect_sensor.IsRunning) { return; } string time = System.DateTime.Now.ToString("hh'-'mm'-'ss", CultureInfo.CurrentUICulture.DateTimeFormat); string myPhotos = "D:"; //Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); string colorpath = myPhotos + "\\Kinect_color_" + time + ".png"; string depthpath = myPhotos + "\\Kinect_depth_" + time + ".txt"; string skeletonpath = myPhotos + "\\Kinect_skeleton_" + time + ".xml"; if (kinect_sensor.ColorStream.IsEnabled) { kinect_data_manager.SaveKinectData(kinect_data_manager.ColorStreamBitmap, colorpath, "COLOR"); } if (kinect_sensor.DepthStream.IsEnabled) { kinect_data_manager.SaveKinectData(kinect_data_manager.depthPixels, depthpath, "DEPTH"); } if (kinect_sensor.SkeletonStream.IsEnabled) { List <Skeleton> skeletonCollection = new List <Skeleton>(); //skeletonCollection.Add(1, kinect_data_manager.skeletons); KinectRecorder.WriteToSkeletonFile(skeletonpath, skeletonCollection); statusbarLabel.Content = "Save skeletons to file: " + skeletonpath; } //kinect_data_manager.SaveKinectData(kinect_data_manager.skeletons, skeletonpath, "SKELETON"); }
private void stopSkeletonRecordBtn_Click(object sender, RoutedEventArgs e) { // save record data to file string time = System.DateTime.Now.ToString("hh'-'mm'-'ss", CultureInfo.CurrentUICulture.DateTimeFormat); string myPhotos = "D:"; //Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); string skeletonpath = myPhotos + "\\Kinect_skeleton_" + time + ".xml"; KinectRecorder.WriteToSkeletonFile(skeletonpath, kinect_data_manager.gesture); statusbarLabel.Content = "Save skeletons to file: " + skeletonpath; //clear data kinect_data_manager.gesture.Clear(); // set state stopSkeletonRecordBtn.IsEnabled = false; startSkeletonRecordBtn.IsEnabled = true; }
private void previewBtn_Click(object sender, RoutedEventArgs e) { if (previewBtn.Content.ToString() == "Preview Stream") { if (kinect_sensor != null) { // disable all other buttons DeactivateReplay(); gestureCaptureBtn.IsEnabled = false; gestureReplayBtn.IsEnabled = false; previewBtn.Content = "Stop Stream"; isStreaming = true; kinect_data_manager.ifShowJointStatus = true; overlap_frame_rec_buffer.Clear(); kinect_sensor.Start(); } } else { if (kinect_sensor != null) { kinect_sensor.Stop(); gestureCaptureBtn.IsEnabled = true; gestureReplayBtn.IsEnabled = true; isStreaming = false; kinect_data_manager.ifShowJointStatus = false; // save recorded frame to disk and save skeleton data if (overlap_frame_rec_buffer != null && gesture_capture_data != null && saveVideoCheckBox.IsChecked.Value) { statusbarLabel.Content = "Saving video..."; // create video writer int fwidth = (int)groupBox3.Width + 20; int fheight = (int)groupBox3.Height + 20; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.Filter = "avi files (*.avi)|*.avi"; saveDialog.FilterIndex = 2; saveDialog.RestoreDirectory = true; if (saveDialog.ShowDialog().Value) { string videofile = saveDialog.FileName.ToString(); VideoWriter videoWriter = new VideoWriter(videofile, CvInvoke.CV_FOURCC('M', 'J', 'P', 'G'), 15, fwidth, fheight, true); // save video if (videoWriter == null) { MessageBox.Show("Fail to save video. Check if codec has been installed."); } else { for (int i = 0; i < overlap_frame_rec_buffer.Count; i++) { // write to video file Emgu.CV.Image <Bgr, byte> cvImg = new Emgu.CV.Image <Bgr, byte>(overlap_frame_rec_buffer[i] as Bitmap); videoWriter.WriteFrame <Bgr, byte>(cvImg); } videoWriter.Dispose(); statusbarLabel.Content = "Video saved to " + videofile; } // save skeleton string skeletonpath = videofile + ".xml"; KinectRecorder.WriteToSkeletonFile(skeletonpath, gesture_capture_data); } } gesture_capture_data.Clear(); overlap_frame_rec_buffer.Clear(); previewBtn.Content = "Preview Stream"; // save tracked elbow speed //FileStream file = File.Open("d:\\temp\\test.txt", FileMode.Create); //StreamWriter writer = new StreamWriter(file); //for (int i = 0; i < motion_assessor.jointStatusSeq.Count; i++) // writer.WriteLine(motion_assessor.jointStatusSeq[i][JointType.HandRight].abs_speed); //writer.Close(); } } }