예제 #1
0
            public override void EstimateTransforms(int cameraId, Aruco.Dictionary dictionary)
            {
                foreach (var arucoGridBoard in arucoTracker.GetArucoObjects <ArucoGridBoard>(dictionary))
                {
                    Cv.Vec3d rvec = null, tvec = null;
                    int      markersUsedForEstimation = 0;

                    if (arucoTracker.MarkerTracker.DetectedMarkers[cameraId][dictionary] > 0 && cameraParameters != null)
                    {
                        markersUsedForEstimation = Aruco.EstimatePoseBoard(arucoTracker.MarkerTracker.MarkerCorners[cameraId][dictionary],
                                                                           arucoTracker.MarkerTracker.MarkerIds[cameraId][dictionary], arucoGridBoard.Board, cameraParameters.CameraMatrices[cameraId],
                                                                           cameraParameters.DistCoeffs[cameraId], out rvec, out tvec);
                    }

                    arucoGridBoard.Rvec = rvec;
                    arucoGridBoard.Tvec = tvec;
                    arucoGridBoard.MarkersUsedForEstimation = markersUsedForEstimation;
                }
            }
예제 #2
0
            /// <summary>
            /// <see cref="ArucoObjectTracker.EstimateTranforms(int, Dictionary, HashSet{ArucoObject})"/>
            /// </summary>
            public override void EstimateTranforms(int cameraId, Aruco.Dictionary dictionary)
            {
                if (!IsActivated || arucoTracker.MarkerTracker.DetectedMarkers[cameraId][dictionary] <= 0)
                {
                    return;
                }

                CameraParameters cameraParameters = arucoTracker.ArucoCamera.CameraParameters;

                foreach (var arucoGridBoard in arucoTracker.GetArucoObjects <ArucoGridBoard>(dictionary))
                {
                    Cv.Core.Vec3d rvec = null, tvec = null;
                    arucoGridBoard.MarkersUsedForEstimation = Aruco.EstimatePoseBoard(arucoTracker.MarkerTracker.MarkerCorners[cameraId][dictionary],
                                                                                      arucoTracker.MarkerTracker.MarkerIds[cameraId][dictionary], arucoGridBoard.Board, cameraParameters.CamerasMatrix[cameraId],
                                                                                      cameraParameters.DistCoeffs[cameraId], out rvec, out tvec);

                    arucoGridBoard.Rvec = rvec;
                    arucoGridBoard.Tvec = tvec;
                }
            }