Esempio n. 1
0
 public static double CalibrateCameraCharuco(Std.VectorVectorPoint2f charucoCorners, Std.VectorVectorInt charucoIds, CharucoBoard board,
                                             Cv.Size imageSize, Cv.Mat cameraMatrix, Cv.Mat distCoeffs, out Std.VectorMat rvecs, out Std.VectorMat tvecs, Cv.Calib flags = 0)
 {
     Cv.TermCriteria criteria = new Cv.TermCriteria(Cv.TermCriteria.Type.Count | Cv.TermCriteria.Type.Eps, 30, Cv.EPSILON);
     return(CalibrateCameraCharuco(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs, out rvecs, out tvecs, flags, criteria));
 }
Esempio n. 2
0
            // Methods

            protected override void UpdateCalibrationFlags()
            {
                calibrationFlags = 0;
                if (UseIntrinsicGuess)
                {
                    calibrationFlags |= Cv.Calib.UseIntrinsicGuess;
                }
                if (FixPrincipalPoint)
                {
                    calibrationFlags |= Cv.Calib.FixPrincipalPoint;
                }
                if (FixKDistorsionCoefficients[0])
                {
                    calibrationFlags |= Cv.Calib.FixK1;
                }
                if (FixKDistorsionCoefficients[1])
                {
                    calibrationFlags |= Cv.Calib.FixK2;
                }
                if (FixKDistorsionCoefficients[2])
                {
                    calibrationFlags |= Cv.Calib.FixK3;
                }
                if (FixKDistorsionCoefficients[3])
                {
                    calibrationFlags |= Cv.Calib.FixK4;
                }
                if (FixKDistorsionCoefficients[4])
                {
                    calibrationFlags |= Cv.Calib.FixK5;
                }
                if (FixKDistorsionCoefficients[5])
                {
                    calibrationFlags |= Cv.Calib.FixK6;
                }
                if (FixAspectRatio)
                {
                    calibrationFlags |= Cv.Calib.FixAspectRatio;
                }
                if (ZeroTangentialDistorsion)
                {
                    calibrationFlags |= Cv.Calib.ZeroTangentDist;
                }
                if (RationalModel)
                {
                    calibrationFlags |= Cv.Calib.RationalModel;
                }
                if (ThinPrismModel)
                {
                    calibrationFlags |= Cv.Calib.ThinPrismModel;
                }
                if (FixS1_S2_S3_S4)
                {
                    calibrationFlags |= Cv.Calib.FixS1S2S3S4;
                }
                if (TiltedModel)
                {
                    calibrationFlags |= Cv.Calib.TiltedModel;
                }
                if (FixTauxTauy)
                {
                    calibrationFlags |= Cv.Calib.FixTauxTauy;
                }
                if (FixFocalLength)
                {
                    calibrationFlags |= Cv.Calib.FixFocalLength;
                }
                if (FixIntrinsic)
                {
                    calibrationFlags |= Cv.Calib.FixIntrinsic;
                }
                if (SameFocalLength)
                {
                    calibrationFlags |= Cv.Calib.SameFocalLength;
                }
            }
Esempio n. 3
0
        public static double CalibrateCameraCharuco(Std.VectorVectorPoint2f charucoCorners, Std.VectorVectorInt charucoIds, CharucoBoard board,
                                                    Cv.Size imageSize, Cv.Mat cameraMatrix, Cv.Mat distCoeffs, out Std.VectorMat rvecs, out Std.VectorMat tvecs, Cv.Calib flags,
                                                    Cv.TermCriteria criteria)
        {
            Cv.Exception exception = new Cv.Exception();
            IntPtr       rvecsPtr, tvecsPtr;

            double reProjectionError = au_calibrateCameraCharuco(charucoCorners.CppPtr, charucoIds.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);
        }