private bool ProcessDepthFrame(MultiSourceFrame multiSourceFrame) { // Depth using (var frame = multiSourceFrame.DepthFrameReference.AcquireFrame()) { if (frame != null) { DepthFrame frameDepth = frame; if (PointCloudScannerSettings.ScannerMode == ScannerMode.Depth || PointCloudScannerSettings.ScannerMode == ScannerMode.Color_Depth || PointCloudScannerSettings.ScannerMode == ScannerMode.Color_Depth_3DDisplay) { this.DepthMetaData = new DepthMetaData(frameDepth, false); if (PointCloudScannerSettings.BackgroundRemoved) { backgroundRemovalTool.DepthFrameData_RemoveBackground(this.DepthMetaData, this.BodyMetaData); if (PointCloudScannerSettings.CutFrames) { this.DepthMetaData.FrameData = DepthMetaData.CutDepth(this.DepthMetaData.FrameData, PointCloudScannerSettings.CutFrameMaxDistance, PointCloudScannerSettings.CutFrameMinDistance, ref numberOfCutPoints); } if (PointCloudScannerSettings.ScannerMode != ScannerMode.Color_Depth_3DDisplay) { this.imageDepth.Source = WriteableBitmapUtils.FromByteArray_ToGray(this.DepthMetaData.Pixels, DepthMetaData.XDepthMaxKinect, DepthMetaData.YDepthMaxKinect); } } else { if (PointCloudScannerSettings.CutFrames) { this.DepthMetaData.FrameData = DepthMetaData.CutDepth(this.DepthMetaData.FrameData, PointCloudScannerSettings.CutFrameMaxDistance, PointCloudScannerSettings.CutFrameMinDistance, ref numberOfCutPoints); } if (PointCloudScannerSettings.ScannerMode != ScannerMode.Color_Depth_3DDisplay) { this.imageDepth.Source = DepthMetaData.FromUShort(DepthMetaData.FrameData); } } if (PointCloudScannerSettings.InterpolateFrames) { CalculateInterpolatedPixels(); } } return(true); } } return(false); }