// Methods

            protected override void UpdateCalibrationFlags()
            {
                calibrationFlags = 0;
                if (UseIntrinsicGuess)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.UseIntrinsicGuess;
                }
                if (FixPrincipalPoint)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixPrincipalPoint;
                }
                if (FixK[0])
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixK1;
                }
                if (FixK[1])
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixK2;
                }
                if (FixK[2])
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixK3;
                }
                if (FixK[3])
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixK4;
                }
                if (FixK[4])
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixK5;
                }
                if (FixK[5])
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixK6;
                }
                if (FixAspectRatio)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixAspectRatio;
                }
                if (ZeroTangentialDistorsion)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.ZeroTangentDist;
                }
                if (RationalModel)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.RationalModel;
                }
                if (ThinPrismModel)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.ThinPrismModel;
                }
                if (FixS1_S2_S3_S4)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixS1S2S3S4;
                }
                if (TiltedModel)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.TiltedModel;
                }
                if (FixTauxTauy)
                {
                    calibrationFlags |= Cv.Calib3d.Calib.FixTauxTauy;
                }
            }
Пример #2
0
            public static double CalibrateCameraCharuco(Std.VectorVectorPoint2f charucoCorners, Std.VectorVectorInt charucoIds, CharucoBoard board, Cv.Core.Size imageSize,
                                                        Cv.Core.Mat cameraMatrix, Cv.Core.Mat distCoeffs, out Std.VectorMat rvecs, out Std.VectorMat tvecs, Cv.Calib3d.Calib flags)
            {
                Cv.Core.Exception exception = new Cv.Core.Exception();
                System.IntPtr     rvecsPtr, tvecsPtr;

                double reProjectionError = au_calibrateCameraCharuco2(charucoCorners.cppPtr, charucoIds.cppPtr, board.cppPtr, imageSize.cppPtr, cameraMatrix.cppPtr,
                                                                      distCoeffs.cppPtr, out rvecsPtr, out tvecsPtr, (int)flags, exception.cppPtr);

                rvecs = new Std.VectorMat(rvecsPtr);
                tvecs = new Std.VectorMat(tvecsPtr);

                exception.Check();
                return(reProjectionError);
            }
Пример #3
0
            public static double CalibrateCameraAruco(Std.VectorVectorPoint2f corners, Std.VectorInt ids, Std.VectorInt counter, Board board, Cv.Core.Size imageSize,
                                                      Cv.Core.Mat cameraMatrix, Cv.Core.Mat distCoeffs, out Std.VectorMat rvecs, out Std.VectorMat tvecs, Cv.Calib3d.Calib flags, Cv.Core.TermCriteria criteria)
            {
                Cv.Core.Exception exception = new Cv.Core.Exception();
                System.IntPtr     rvecsPtr, tvecsPtr;

                double reProjectionError = au_calibrateCameraAruco1(corners.cppPtr, ids.cppPtr, counter.cppPtr, board.cppPtr, imageSize.cppPtr, cameraMatrix.cppPtr,
                                                                    distCoeffs.cppPtr, out rvecsPtr, out tvecsPtr, (int)flags, criteria.cppPtr, exception.cppPtr);

                rvecs = new Std.VectorMat(rvecsPtr);
                tvecs = new Std.VectorMat(tvecsPtr);

                exception.Check();
                return(reProjectionError);
            }