private List <ValidPoint> DepthToColor() { // Points to return List <ValidPoint> validPoints = new List <ValidPoint>(); // Get Data mDepthData = mMultiSource.GetDepthData(); // Map mMapper.MapDepthFrameToCameraSpace(mDepthData, mCameraSpacePoints); mMapper.MapDepthFrameToColorSpace(mDepthData, mColorSpacePoints); // Filter for (int i = 0; i < mDepthResolution.x; i++) { for (int j = 0; j < mDepthResolution.y / 8; j++) { // Sample index int sampleIndex = (j * mDepthResolution.x) + i; sampleIndex *= 8; // Cutoff tests if (mCameraSpacePoints[sampleIndex].X < mLeftCutOff) { continue; } if (mCameraSpacePoints[sampleIndex].X > mRightCutOff) { continue; } if (mCameraSpacePoints[sampleIndex].Y > mTopCutOff) { continue; } if (mCameraSpacePoints[sampleIndex].Y < mBottomCutOff) { continue; } // Create point ValidPoint newPoint = new ValidPoint(mColorSpacePoints[sampleIndex], mCameraSpacePoints[sampleIndex].Z); // Depth test if (mCameraSpacePoints[sampleIndex].Z >= mWallDepth) { newPoint.mWithinWallDepth = true; } // Add validPoints.Add(newPoint); } } return(validPoints); }
private List <ValidPoint> DepthToColour() { //Get Depth Data mDepthData = mMultiSource.GetDepthData(); //Map Depth Data mMapper.MapDepthFrameToCameraSpace(mDepthData, mCameraSpacePoints); mMapper.MapDepthFrameToColorSpace(mDepthData, mColorSpacePoints); //Points to return List <ValidPoint> validPoints = new List <ValidPoint>(); // Filter for (int i = 0; i < mDepthResolution.x / 8; i++) { //Divide by 8 to avoid index out of bounds for (int j = 0; j < mDepthResolution.y / 8; j++) { //downsample all of the points to help it run better //go through one dimensional array of camera points int sampleIndex = (j * mDepthResolution.x) + i; //Skip over 8 values between each point sampleIndex *= 8; //Cut off tests if (mCameraSpacePoints[sampleIndex].X < mLeftCutOff) { continue; } if (mCameraSpacePoints[sampleIndex].X > mRightCutOff) { continue; } if (mCameraSpacePoints[sampleIndex].Y > mTopCutOff) { continue; } if (mCameraSpacePoints[sampleIndex].Y < mBottomCutOff) { continue; } //Create a new valid point ValidPoint newPoint = new ValidPoint(mColorSpacePoints[sampleIndex], mCameraSpacePoints[sampleIndex].Z); //Depth Test if (mCameraSpacePoints[sampleIndex].Z >= mWallDepth) { newPoint.mWithinWallDepth = true; } //Add out new pont to valid points validPoints.Add(newPoint); } } return(validPoints); }
private List <ValidPoint> DepthToColor() { List <ValidPoint> ValidPoints = new List <ValidPoint>(); //Get depth mDepthData = mMultiSource.GetDepthData(); mMapper.MapDepthFrameToCameraSpace(mDepthData, mCameraSapcePoints); mMapper.MapDepthFrameToColorSpace(mDepthData, mColorSpacePoints); //Filter for (int i = 0; i < mDepthResolution.x / 8; i++) { for (int j = 0; j < mDepthResolution.y / 8; j++) { int sampleIndex = (j * mDepthResolution.x) + i; sampleIndex *= 8; //CutoffTests if (mCameraSapcePoints[sampleIndex].X < mLeftCutOff) { continue; } if (mCameraSapcePoints[sampleIndex].X > mRigthCutOff) { continue; } if (mCameraSapcePoints[sampleIndex].Y > mTopCutOff) { continue; } if (mCameraSapcePoints[sampleIndex].Y < mBottomCutOff) { continue; } ValidPoint newPoint = new ValidPoint(mColorSpacePoints[sampleIndex], mCameraSapcePoints[sampleIndex].Z); if (mCameraSapcePoints[sampleIndex].Z >= mWallDepth) { newPoint.mWithinWallDepth = true; } ValidPoints.Add(newPoint); } } return(ValidPoints); }