public ChessboardTrackingCompleteData Calibrate(PlaneTrackingCompleteData planeData, BlockingCollection <Message> outputQueue) { var chessboardData = new ChessboardTrackingCompleteData(planeData); SceneCalibrationSnapshot snapshot; (BoardReprezentation, snapshot) = ChessboardAlgorithm.LocateChessboard(chessboardData); outputQueue.Add(new SceneCalibrationSnapshotMessage(snapshot)); RotationAlgorithm.Rotate(BoardReprezentation, chessboardData.KinectData.CameraSpacePointsFromDepthData); return(chessboardData); }
public ChessboardTrackingCompleteData Track(PlaneTrackingCompleteData planeData) { var chessboardData = new ChessboardTrackingCompleteData(planeData); RotationAlgorithm.Rotate(BoardReprezentation, chessboardData.KinectData.CameraSpacePointsFromDepthData); chessboardData.ChessboardData.FieldSize = BoardReprezentation.FieldVector1.Magnitude(); if (chessboardData.UserParameters.VisualisationType == VisualisationType.HighlightedChessboard) { chessboardData.ResultData.VisualisationBitmap = Renderer.ReturnLocalizedChessboardWithTable( chessboardData.PlaneData.MaskedColorImageOfTable.Bitmap, chessboardData.PlaneData.MaskOfTable, chessboardData.KinectData.PointsFromColorToDepth, chessboardData.KinectData.CameraSpacePointsFromDepthData, BoardReprezentation.FieldVector1.Magnitude()); } return(chessboardData); }