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)); }
// 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; } }
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); }