/// <summary> /// Find the most similar camera poses to the current camera input by comparing against the /// camera pose finder database, and returning a set of similar camera poses. These poses /// and similarity measurements are ordered in terms of decreasing similarity (i.e. the most /// similar is first). Both input depth and color frames must be identical sizes, with valid /// camera parameters and captured at the same time. /// </summary> /// <param name="depthFloatFrame">The depth float frame to be processed.</param> /// <param name="colorFrame">The color frame to be processed.</param> /// <returns>Returns the matched frames object created by the camera pose finder.</returns> /// <exception cref="ArgumentNullException"> /// Thrown when the <paramref name="depthFloatFrame"/> or <paramref name="colorFrame"/> /// parameter is null. </exception> /// <exception cref="ArgumentException"> /// Thrown when the <paramref name="depthFloatFrame"/> and <paramref name="colorFrame"/> /// parameter is an incorrect or different image size, or their <c>CameraParameters</c> /// member is null or has incorrectly sized focal lengths.</exception> /// <exception cref="InvalidOperationException"> /// Thrown when the Kinect Runtime could not be accessed, /// or the call failed for an unknown reason. /// </exception> /// <returns>Returns a set of matched frames/poses.</returns> public MatchCandidates FindCameraPose( FusionFloatImageFrame depthFloatFrame, FusionColorImageFrame colorFrame) { if (null == depthFloatFrame) { throw new ArgumentNullException("depthFloatFrame"); } if (null == colorFrame) { throw new ArgumentNullException("colorFrame"); } INuiFusionMatchCandidates matchCandidates = null; ExceptionHelper.ThrowIfFailed(cameraPoseFinder.FindCameraPose( FusionImageFrame.ToHandleRef(depthFloatFrame), FusionImageFrame.ToHandleRef(colorFrame), out matchCandidates)); return(new MatchCandidates(matchCandidates)); }
/// <summary> /// Initializes a new instance of the MatchCandidates class. /// </summary> /// <param name="matchCandidates">The match candidates interface to be encapsulated.</param> internal MatchCandidates(INuiFusionMatchCandidates matchCandidates) { this.matchCandidates = matchCandidates; }