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; }
void DirectRecord(string targetFileName) { Stream recordStream = File.Create(targetFileName); recorder = new KinectRecorder(KinectRecordOptions.Skeletons | KinectRecordOptions.Color, recordStream); recordOption.Content = "Stop Recording"; }
public void Record(SkeletonFrame frame) { if (null != KinectRecorder && KinectRecorder.IsRecording) { KinectRecorder.Record(frame); } }
private void gestureReplayBtn_Click(object sender, RoutedEventArgs e) { if (kinect_sensor != null && kinect_sensor.IsRunning) { return; } OpenFileDialog dialog = new OpenFileDialog(); dialog.DefaultExt = ".xml"; dialog.FileName = "Skeleton"; dialog.Filter = "Skeleton data file (.xml)|*.xml"; Nullable <bool> result = dialog.ShowDialog(); if (result == true) { string filename = dialog.FileName; // test: read skeleton data and display gesture_capture_data = KinectRecorder.ReadFromSkeletonFile(filename); statusbarLabel.Content = "Load gesture file from " + filename; ActivateReplay(gesture_capture_data); isReplay = true; } }
public void Record(DepthImageFrame frame) { if (null != KinectRecorder && KinectRecorder.IsRecording) { KinectRecorder.Record(frame); } }
public void StopRecording() { if (null != KinectRecorder && KinectRecorder.IsRecording) { KinectRecorder.Stop(); } if (null != _recordingStream) { _recordingStream.Close(); _recordingStream.Dispose(); _recordingStream = null; } if (null != DataRecorder && DataRecorder.IsRecording) { DataRecorder.Stop(); } if (null != _dataOutStream) { _dataOutStream.Close(); _dataOutStream.Dispose(); _dataOutStream = null; } Status = Service.RecordingManagerStatus.Standby; }
/// <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"); }
void DirectRecord(string targetFileName) { Stream recordStream = File.Create(targetFileName); recorder = new KinectRecorder(KinectRecordOptions.Skeletons | KinectRecordOptions.Color | KinectRecordOptions.Depth, kinectSensor.CoordinateMapper, HandInputParams.ColorFocalLength, HandInputParams.DepthFocalLength, recordStream); }
void StopRecord() { if (recorder != null) { recorder.Stop(); recorder = null; return; } }
private void Record_Click(object sender, RoutedEventArgs e) { string generatedName = Guid.NewGuid().ToString(); string recordStreamPathAndName = @"e:\" + generatedName + ".replay"; this.recordStream = File.Create(recordStreamPathAndName); this.Recorder = new KinectRecorder(KinectRecordOptions.Color | KinectRecordOptions.Depth | KinectRecordOptions.Skeletons, recordStream); this.Isrecording = true; }
private void Stop_Click(object sender, RoutedEventArgs e) { if (Recorder != null) { Isrecording = false; Recorder.Stop(); Recorder = null; } System.Console.WriteLine("record stop!!!"); }
private void StartRecording() { // Start recording. this.RecordStream = new BufferedStream(new FileStream(this.Preferences.KinectDataFile, FileMode.Create)); this.KinectRecorder = new KinectRecorder(KinectRecordOptions.Skeletons, this.RecordStream); //this.Preferences.KinectDataFile this.IsRecording = true; }
private void Clean() { if (swipeGestureRecognizer != null) { swipeGestureRecognizer.OnGestureDetected -= OnGestureDetected; } if (audioManager != null) { audioManager.Dispose(); audioManager = null; } if (parallelCombinedGestureDetector != null) { parallelCombinedGestureDetector.Remove(swipeGestureRecognizer); parallelCombinedGestureDetector.Remove(circleGestureRecognizer); parallelCombinedGestureDetector.Remove(triangleGestureRecognizer); parallelCombinedGestureDetector = null; //Add Triangle } CloseGestureDetector(); ClosePostureDetector(); if (voiceCommander != null) { voiceCommander.OrderDetected -= voiceCommander_OrderDetected; voiceCommander.Stop(); voiceCommander = null; } if (recorder != null) { recorder.Stop(); recorder = null; } if (eyeTracker != null) { eyeTracker.Dispose(); eyeTracker = null; } if (kinectSensor != null) { kinectSensor.DepthFrameReady -= kinectSensor_DepthFrameReady; kinectSensor.SkeletonFrameReady -= kinectRuntime_SkeletonFrameReady; kinectSensor.ColorFrameReady -= kinectRuntime_ColorFrameReady; kinectSensor.Stop(); kinectSensor = null; } }
void StopRecord() { if (recorder != null) { recorder.Stop(); System.IO.File.WriteAllLines(@"C:\TestAngles.txt", jointAngles); recorder = null; recordOption.Content = "Record"; return; } }
public async void RecordButton_Click(object sender, RoutedEventArgs e) { if (_recorder == null) { if (Scene.Instance != null) { System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show( "Estás seguro de grabar una nueva escena?", "Has guardado los datos de la escena actual?", System.Windows.Forms.MessageBoxButtons.YesNo); if (dialogResult == System.Windows.Forms.DialogResult.No) { return; } } MainWindow.Instance().FromSensorRadioButton.IsChecked = true; //if (File.Exists(Properties.Paths.asd)) File.Delete(Properties.Paths.asd); if (Kinect.Instance.Player.IsOpen) { Kinect.Instance.Player.Close(); } if (File.Exists(Properties.Paths.CurrentKdvrFile)) { File.Delete(Properties.Paths.CurrentKdvrFile); } if (File.Exists(Properties.Paths.CurrentDataFile)) { File.Delete(Properties.Paths.CurrentDataFile); } _recorder = new KinectRecorder(File.Open(Properties.Paths.CurrentKdvrFile, FileMode.Create), _sensor); _recorder.EnableBodyRecorder = true; _recorder.EnableColorRecorder = true; _recorder.EnableDepthRecorder = false; _recorder.EnableInfraredRecorder = false; _recorder.ColorRecorderCodec = new JpegColorCodec(); _recorder.ColorRecorderCodec.OutputWidth = 1280; _recorder.ColorRecorderCodec.OutputHeight = 720; string sceneName = DateTime.Now.ToString("yyyy-MM-dd _ hh-mm-ss"); Scene.CreateFromRecord(sceneName); _recorder.Start(); } }
public void Initialize() { string fakeFile = _fileLocation + Guid.NewGuid().ToString(); _recordingStream = new FileStream(fakeFile, FileMode.OpenOrCreate); KinectRecorder = new KinectRecorder(0, _recordingStream); _replayStream = new FileStream(fakeFile + "1", FileMode.OpenOrCreate); KinectReplay = new KinectReplay(_replayStream); _dataOutStream = new FileStream(fakeFile + "2", FileMode.OpenOrCreate); DataRecorder = new PostProcessedRecorder(_dataOutStream); }
public void startRecordAndSaveTo(string filename) { IsRecording = true; _filename = filename; _isStoppingRecorder = false; try { _recorder = new KinectRecorder(KinectRecordOptions.Frames, filename, _device.sensor); } catch (Exception ex) { Console.WriteLine(ex.Message); IsRecording = false; } }
public void stopRecord(Boolean noEvent = false) { _isStoppingRecorder = true; if (_recorder == null) { return; } IsRecording = false; _recorder.Stop(); String fileName = _recorder.FileName; _recorder = null; if (!noEvent && RecordComplete != null) { RecordComplete(this, fileName); } }
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; }
public void StartRecording() { if (!Recording) { System.Diagnostics.Debug.WriteLine("Start recording..."); string logFile = Path.Combine(RecordPath, RecordFileName + ".log"); string skeletonFile = Path.Combine(RecordPath, RecordFileName + "_skeleton.data"); string colorFile = Path.Combine(RecordPath, RecordFileName + "_color.data"); string depthFile = Path.Combine(RecordPath, RecordFileName + "_depth.data"); LogStartTime(logFile); SkeletonRecordStream = new BufferedStream(new FileStream(skeletonFile, FileMode.Create)); ColorRecordStream = new BufferedStream(new FileStream(colorFile, FileMode.Create)); DepthRecordStream = new BufferedStream(new FileStream(depthFile, FileMode.Create)); KinectSkeletonRecorder = new KinectRecorder(KinectRecordOptions.Skeletons, SkeletonRecordStream); KinectColorRecorder = new KinectRecorder(KinectRecordOptions.Color, ColorRecordStream); KinectDepthRecorder = new KinectRecorder(KinectRecordOptions.Depth, DepthRecordStream); Recording = true; } }
/// <summary> /// Cleans up everything. /// </summary> void Clean() { Log.Info("Cleaning."); if (recorder != null) { recorder.Close(); recorder = null; } if (kinectSensor != null && kinectSensor.IsRunning) { kinectSensor.AllFramesReady -= kinectRuntime_AllFrameReady; kinectSensor.Stop(); Log.Info("Stopped Kinect sensor."); } kinectSensor = null; StopReplay(); inputServer.Stop(); }
/// <summary> /// Record a scene. /// </summary> private void Record() { // Stop recording. if (this.Mode == ControlMode.Record) { System.Diagnostics.Debug.WriteLine("Stop recording..."); this.Mode = ControlMode.Normal; this.KinectRecorder.Stop(); } // Start recording. else { System.Diagnostics.Debug.WriteLine("Start recording..."); this.RecordStream = new BufferedStream(new FileStream(this.Preferences.KinectDataFile, FileMode.Create)); this.KinectRecorder = new KinectRecorder(KinectRecordOptions.Skeletons, this.RecordStream); this.Mode = ControlMode.Record; //new KinectRecorder(KinectRecordOptions.Color | KinectRecordOptions.Skeletons, this.RecordStream); } }
public async void StopRecordButton_Click(object sender, RoutedEventArgs e) { if (_recorder != null) { await _recorder.StopAsync(); _recorder = null; //File.Copy(Properties.Paths.CurrentKdvrFile, Properties.Paths.CurrentReplayKdvrFile); Kinect.Instance.Player.OpenFile(Properties.Paths.CurrentKdvrFile); Scene.Instance.Duration = Kinect.Instance.Player.Duration; Scene.Instance.InitTimeLine(); foreach (Person person in Scene.Instance.Persons) { if (!person.HasBeenTracked) { continue; } //person.generatePostureIntervals(); //person.View.repaintIntervalGroups(); //MainWindow.Instance().timeLineContentGrid.Children.Add(person.View.postureGroupsGrid); } Interaction.Instance.GenerateIntervalGroups(); Scene.Instance.Interaction = Interaction.Instance; var db = BackupDataContext.CreateConnection(Properties.Paths.CurrentDataFile); db.Database.EnsureCreated(); //db.Scene.Add(Scene.Instance); //db.SaveChanges(); MainWindow.Instance().FromSceneRadioButton.IsChecked = true; System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show( "Escena grabada con éxito!", "Grabación"); } }
private void loadSkeletonBtn_Click(object sender, RoutedEventArgs e) { if (kinect_sensor.IsRunning) { return; } OpenFileDialog dialog = new OpenFileDialog(); dialog.DefaultExt = ".xml"; dialog.FileName = "Skeleton"; dialog.Filter = "Skeleton data file (.xml)|*.xml"; Nullable <bool> result = dialog.ShowDialog(); if (result == true) { string filename = dialog.FileName; // test: read skeleton data and display List <Skeleton> skeleton_data = KinectRecorder.ReadFromSkeletonFile(filename); // save to data manager object kinect_data_manager.gesture = skeleton_data; int min_frame_id = 0; int max_frame_id = skeleton_data.Count; skeletonVideoSlider.IsEnabled = true; skeletonVideoSlider.Minimum = min_frame_id; skeletonVideoSlider.Maximum = max_frame_id; skeletonVideoSlider.Value = min_frame_id; skeletonSliderLabel.Content = min_frame_id.ToString(); //kinect_data_manager.UpdateSkeletonData(skeleton_data[min_frame_id]); mode = KinectMode.Replay; } }
private void StartRecording(KinectRecordOptions options) { StopReplaying(); StopRecording(); string fileId = Guid.NewGuid().ToString(); FilesUsed.Add(fileId, _fileLocation + fileId); if (null != KinectRecorder && KinectRecorder.IsRecording) { KinectRecorder.Stop(); } _recordingStream = new FileStream( FilesUsed[fileId], FileMode.OpenOrCreate ); if (null != DataRecorder && DataRecorder.IsRecording) { DataRecorder.Stop(); } _dataOutStream = new FileStream( FilesUsed[fileId] + "_data", FileMode.OpenOrCreate ); KinectRecorder = new KinectRecorder(options, _recordingStream); KinectRecorder.Start(); DataRecorder = new PostProcessedRecorder(_dataOutStream); DataRecorder.Start(); Status = Service.RecordingManagerStatus.Recording; OnRecordingStatusChanged(new RecordingStatusChangedEventArg(fileId)); }
private void RecordClick(object sender, RoutedEventArgs e) { if (IsRecording) { recorder.Stop(); recorder = null; IsRecording = false; Message = ""; return; } var saveFileDialog = new SaveFileDialog { Title = "Select filename", Filter = "Replay files|*.replay" }; if (saveFileDialog.ShowDialog() != true) { return; } recorder = new KinectRecorder(RecordOptions, saveFileDialog.FileName, _kinectSensor); Message = string.Format("Recording {0}", RecordOptions.ToString()); recorder.StartAudioRecording(); IsRecording = 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(); } } }
async void RecordButton_Click(object sender, RoutedEventArgs e) { if (_recorder == null) { var dlg = new SaveFileDialog() { FileName = DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss"), DefaultExt = ".kdvr", Filter = "KinectEx.DVR Files (*.kdvr)|*.kdvr" }; if (dlg.ShowDialog().GetValueOrDefault()) { _recorder = new KinectRecorder(File.Open(dlg.FileName, FileMode.Create), _sensor); _recorder.EnableBodyRecorder = BodyCheckBox.IsChecked.GetValueOrDefault(); _recorder.EnableColorRecorder = ColorCheckBox.IsChecked.GetValueOrDefault(); _recorder.EnableDepthRecorder = DepthCheckBox.IsChecked.GetValueOrDefault(); _recorder.EnableInfraredRecorder = InfraredCheckBox.IsChecked.GetValueOrDefault(); // NOTE : Default ColorRecorderCodec is Raw @ 1920 x 1080. Only need to change the // bits that differ from the default. int colorCompressionType = ColorCompressionCombo.SelectedIndex / 3; int colorCompressionSize = ColorCompressionCombo.SelectedIndex % 3; if (colorCompressionType == 1) { _recorder.ColorRecorderCodec = new JpegColorCodec(); } if (colorCompressionSize == 1) // 1280 x 720 { _recorder.ColorRecorderCodec.OutputWidth = 1280; _recorder.ColorRecorderCodec.OutputHeight = 720; } else if (colorCompressionSize == 2) // 640 x 360 { _recorder.ColorRecorderCodec.OutputWidth = 640; _recorder.ColorRecorderCodec.OutputHeight = 360; } _recorder.Start(); RecordButton.Content = "Stop Recording"; BodyCheckBox.IsEnabled = false; ColorCheckBox.IsEnabled = false; DepthCheckBox.IsEnabled = false; ColorCompressionCombo.IsEnabled = false; } } else { RecordButton.IsEnabled = false; await _recorder.StopAsync(); _recorder = null; RecordButton.Content = "Record"; RecordButton.IsEnabled = true; BodyCheckBox.IsEnabled = true; ColorCheckBox.IsEnabled = true; DepthCheckBox.IsEnabled = true; ColorCompressionCombo.IsEnabled = true; } }
public void stopRecord(Boolean noEvent = false) { _isStoppingRecorder = true; if (_recorder == null) return; IsRecording = false; _recorder.Stop(); String fileName = _recorder.FileName; _recorder = null; if (!noEvent && RecordComplete != null) { RecordComplete(this, fileName); } }
private void RecordClick(object sender, RoutedEventArgs e) { if (IsRecording) { recorder.Stop(); recorder = null; IsRecording = false; Message = ""; return; } var saveFileDialog = new SaveFileDialog { Title = "Select filename", Filter = "Replay files|*.replay" }; if (saveFileDialog.ShowDialog() != true) return; recorder = new KinectRecorder(RecordOptions, saveFileDialog.FileName, _kinectSensor); Message = string.Format("Recording {0}", RecordOptions.ToString()); recorder.StartAudioRecording(); IsRecording = true; }
async void RecordButton_Click(object sender, RoutedEventArgs e) { if (_recorder == null) { var picker = new FileSavePicker(); picker.FileTypeChoices.Add("KinectEx.DVR Files", new List <string>() { ".kdvr" }); picker.DefaultFileExtension = ".kdvr"; picker.SuggestedFileName = DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss"); var file = await picker.PickSaveFileAsync(); if (file != null) { // NOTE : Unlike the WPF sample which uses the "Automatic" mode, this example // shows the use of the manual recording mode and does some work to // optimize the recording process. The result is a better experience // for this application and a better recording because fewer frames // end up getting lost. _recorder = new KinectRecorder(await file.OpenStreamForWriteAsync()); // NOTE : Default ColorRecorderCodec is Raw @ 1920 x 1080. Only need to change the // bits that differ from the default. int colorCompressionType = ColorCompressionCombo.SelectedIndex / 3; int colorCompressionSize = ColorCompressionCombo.SelectedIndex % 3; if (colorCompressionType == 1) { _recorder.ColorRecorderCodec = new JpegColorCodec(); } if (colorCompressionSize == 1) // 1280 x 720 { _recorder.ColorRecorderCodec.OutputWidth = 1280; _recorder.ColorRecorderCodec.OutputHeight = 720; } else if (colorCompressionSize == 2) // 640 x 360 { _recorder.ColorRecorderCodec.OutputWidth = 640; _recorder.ColorRecorderCodec.OutputHeight = 360; } _recorder.Start(); RecordButton.Content = "Stop Recording"; BodyCheckBox.IsEnabled = false; ColorCheckBox.IsEnabled = false; DepthCheckBox.IsEnabled = false; InfraredCheckBox.IsEnabled = false; ColorCompressionCombo.IsEnabled = false; } } else { RecordButton.IsEnabled = false; await _recorder.StopAsync(); _recorder = null; RecordButton.Content = "Record"; RecordButton.IsEnabled = true; BodyCheckBox.IsEnabled = true; ColorCheckBox.IsEnabled = true; DepthCheckBox.IsEnabled = true; InfraredCheckBox.IsEnabled = true; ColorCompressionCombo.IsEnabled = true; } }