private void releaseKinectResources() { if (SourceReaderRef != null) { SourceReaderRef.Dispose(); SourceReaderRef = null; } if (KinectSensorRef != null) { if (KinectSensorRef.IsOpen) { KinectSensorRef.Close(); } KinectSensorRef = null; } }
public void OpenReader() { if (KinectSensorRef != null) { SourceReaderRef = KinectSensorRef.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth); //OpenCVで使うのでRGBA var colorFrameDesc = KinectSensorRef.ColorFrameSource.CreateFrameDescription(ColorImageFormat.Bgra); ColorFrameWidth = colorFrameDesc.Width; ColorFrameHeight = colorFrameDesc.Height; //領域確保 ColorData = new byte[colorFrameDesc.BytesPerPixel * colorFrameDesc.LengthInPixels]; DepthData = new ushort[KinectSensorRef.DepthFrameSource.FrameDescription.LengthInPixels]; if (KinectSensorRef.IsOpen == false) { KinectSensorRef.Open(); } } }