Пример #1
0
        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);
        }
Пример #2
0
        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);
        }