private void btnSelectCamera_Click(object sender, EventArgs e) { VideoCaptureDeviceForm form = new VideoCaptureDeviceForm(); if (form.ShowDialog() == DialogResult.OK) { int deviceId = form.DeviceId; kinectDevice = Kinect.GetDevice(deviceId); if (videoCamera == null) { videoCamera = kinectDevice.GetVideoCamera(); videoCamera.CameraMode = VideoCameraMode.Color; controller.Device = videoCamera; controller.Start(); controller.NewFrame += new AForge.Video.NewFrameEventHandler(controller_NewFrame); } if (depthCamera == null) { //depthCamera = kinectDevice.GetDepthCamera(); depthCamera = new KinectDepthCamera(deviceId, CameraResolution.Medium, true); videoSourcePlayer1.VideoSource = depthCamera; videoSourcePlayer1.Start(); } toolStripStatusLabel1.Text = "Initializing..."; } }
// Connect to Kinect cameras private bool Connect() { bool ret = false; Cursor = Cursors.WaitCursor; if (Kinect.DeviceCount != 0) { int deviceID = devicesCombo.SelectedIndex; try { kinectDevice = Kinect.GetDevice(deviceID); if (videoCamera == null) { videoCamera = kinectDevice.GetVideoCamera(); videoCamera.CameraMode = (videoModeCombo.SelectedIndex == 0) ? VideoCameraMode.Color : ((videoModeCombo.SelectedIndex == 1) ? VideoCameraMode.Bayer : VideoCameraMode.InfraRed); videoCameraPlayer.VideoSource = videoCamera; videoCameraPlayer.Start(); } if (depthCamera == null) { depthCamera = kinectDevice.GetDepthCamera(); depthCameraPlayer.VideoSource = depthCamera; depthCameraPlayer.Start(); } ledColorCombo.SelectedIndex = 0; if (tiltUpDown.Value != 0) { tiltUpDown.Value = 0; } else { kinectDevice.SetMotorTilt((int)tiltUpDown.Value); } timer.Start(); ret = true; } catch (Exception ex) { MessageBox.Show("Failed connecting to Kinect device.\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Disconnect(); } } Cursor = Cursors.Default; return(ret); }
// Disconnect from Kinect cameras private void Disconnect() { timer.Stop(); if (videoCamera != null) { videoCameraPlayer.VideoSource = null; videoCamera.Stop(); videoCamera = null; } if (depthCamera != null) { depthCameraPlayer.VideoSource = null; depthCamera.Stop(); depthCamera = null; } if (kinectDevice != null) { kinectDevice.Dispose(); kinectDevice = null; } }