|
Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
|
Linear multi-camera extrinsics initialisation (DLT) More...
Namespaces | |
| namespace | detail |
| namespace | pipeline |
Classes | |
| struct | AxXbResidual |
| struct | BrownConrady |
| struct | BundleBlocks |
| struct | BundleObservation |
| Single observation used for hand-eye calibration. More... | |
| struct | BundleOptions |
| Options controlling the hand-eye calibration optimisation. More... | |
| struct | BundleReprojResidual |
| struct | BundleResult |
| Result returned by hand-eye calibration. More... | |
| struct | CalibrationBounds |
| struct | CalibVPResidual |
| struct | CameraMatrixT |
| struct | CameraTraits |
| Type traits template for camera model implementations. More... | |
| struct | CameraTraits< PinholeCamera< DistortionT > > |
| struct | CameraTraits< ScheimpflugCamera< CameraT > > |
| struct | DistortionWithResiduals |
| struct | DualBrownConrady |
| struct | DualDistortionWithResiduals |
| struct | ExtrinsicBlocks |
| struct | ExtrinsicOptimizationResult |
| struct | ExtrinsicOptions |
| struct | ExtrinsicPoses |
| struct | ExtrinsicResidual |
| struct | HandeyeBlocks |
| struct | HandeyeResult |
| struct | HomographyBlocks |
| struct | HomographyEstimator |
| struct | HomographyResidual |
| struct | HomographyResult |
| struct | IntrinsicBlocks |
| struct | IntrinsicResidual |
| struct | IntrinsicsEstimateResult |
| Result of linear intrinsic estimation. More... | |
| struct | IntrinsicsEstimOptions |
| Options for linear intrinsic estimation from planar views. More... | |
| struct | IntrinsicsOptimizationResult |
| struct | IntrinsicsOptimOptions |
| struct | LinearSystem |
| struct | LineScanCalibrationResult |
| struct | LineScanPlaneFitOptions |
| struct | LineScanView |
| struct | MotionPair |
| Motion pair structure for hand-eye calibration. More... | |
| struct | Observation |
| Observation structure for distortion parameter estimation. More... | |
| struct | OptimizeHomographyResult |
| struct | OptimResult |
| struct | ParamBlock |
| class | PinholeCamera |
| Pinhole camera model with intrinsics and distortion correction. More... | |
| struct | PlanarObservation |
| struct | PlanarPoseBlocks |
| struct | PlanarPoseOptions |
| struct | PlanarPoseResult |
| struct | PlanarPoseVPResidual |
| struct | PlaneRansacResult |
| struct | PoseFromHResult |
| Recover target->camera pose (R,t) from camera matrix K and planar homography H. More... | |
| struct | ProblemParamBlocks |
| struct | RansacOptions |
| struct | RansacResult |
| struct | ScheimpflugAngles |
| struct | ScheimpflugCamera |
| Camera model with a tilted sensor plane (Scheimpflug configuration). More... | |
| class | StreamCapture |
| struct | ViewEstimateData |
Concepts | |
| concept | serializable_aggregate |
| concept | camera_model |
| Concept defining the interface requirements for camera model implementations. | |
| concept | distortion_model |
| Concept defining the interface for lens distortion models. | |
Typedefs | |
| using | MulticamPlanarView = std::vector< PlanarView > |
| using | PlanarView = std::vector< PlanarObservation > |
| using | CameraMatrix = CameraMatrixT< double > |
| using | BrownConradyd = BrownConrady< double > |
| using | DualDistortion = DualBrownConrady< double > |
| template<distortion_model DistortionT> | |
| using | Camera = PinholeCamera< DistortionT > |
| using | Model = HomographyEstimator::Model |
| using | Datum = HomographyEstimator::Datum |
| using | Vec2 = Eigen::Vector2d |
| using | Mat3 = Eigen::Matrix3d |
| using | HomographyParams = std::array< double, 8 > |
| using | Pose6 = Eigen::Matrix< double, 6, 1 > |
Enumerations | |
| enum class | OptimizerType { DEFAULT , SPARSE_SCHUR , DENSE_SCHUR , DENSE_QR } |
Functions | |
| auto | sanitize_intrinsics (const CameraMatrix &kmtx, const std::optional< CalibrationBounds > &bounds) -> std::pair< CameraMatrix, bool > |
| template<class Estimator > | |
| auto | ransac (const std::vector< typename Estimator::Datum > &data, const RansacOptions &opts={}) -> RansacResult< typename Estimator::Model > |
| Eigen::Matrix3d | project_to_so3 (const Eigen::Matrix3d &rmtx) |
| Eigen::Matrix3d | skew (const Eigen::Vector3d &vec) |
| Eigen::Vector3d | log_so3 (const Eigen::Matrix3d &rot_in) |
| Eigen::Matrix3d | exp_so3 (const Eigen::Vector3d &wvec) |
| Eigen::VectorXd | solve_llsq (const Eigen::MatrixXd &amtx, const Eigen::VectorXd &bvec) |
| template<class Mat , class Vec > | |
| Eigen::VectorXd | ridge_llsq (const Mat &amtx, const Vec &bvec, double lambda=1e-10) |
| std::array< double, 6 > | pose_to_array (const Eigen::Isometry3d &pose) |
| Eigen::Isometry3d | average_isometries (const std::vector< Eigen::Isometry3d > &poses) |
| template<camera_model CameraT> | |
| auto | estimate_extrinsic_dlt (const std::vector< MulticamPlanarView > &views, const std::vector< CameraT > &cameras) -> ExtrinsicPoses |
| auto | build_all_pairs (const std::vector< Eigen::Isometry3d > &base_se3_gripper, const std::vector< Eigen::Isometry3d > &cam_se3_target, double min_angle_deg=1.0, bool reject_axis_parallel=true, double axis_parallel_eps=1e-3) -> std::vector< MotionPair > |
| Generate all valid motion pairs from pose sequences. | |
| auto | estimate_handeye_dlt (const std::vector< Eigen::Isometry3d > &base_se3_gripper, const std::vector< Eigen::Isometry3d > &camera_se3_target, double min_angle_deg=1.0) -> Eigen::Isometry3d |
| Estimates the hand-eye transformation using the Tsai-Lenz algorithm with all pairs of input transformations and weighted averaging. | |
| auto | estimate_homography (const PlanarView &data, std::optional< RansacOptions > ransac_opts=std::nullopt) -> HomographyResult |
| auto | estimate_intrinsics (const std::vector< PlanarView > &views, const IntrinsicsEstimOptions &opts={}) -> IntrinsicsEstimateResult |
| Estimate camera intrinsics from planar views using a linear method. | |
| auto | estimate_intrinsics_linear (const std::vector< Observation< double > > &observations, std::optional< CalibrationBounds > bounds=std::nullopt, bool use_skew=false) -> std::optional< CameraMatrix > |
| Linear estimate with normalized observations. | |
| auto | estimate_intrinsics_linear_iterative (const std::vector< Observation< double > > &observations, int num_radial, int max_iterations=k_default_max_iterations, bool use_skew=false) -> std::optional< PinholeCamera< BrownConradyd > > |
| void | validate_observations (const std::vector< LineScanView > &views) |
| Eigen::Matrix3d | build_plane_homography (const Eigen::Vector4d &plane) |
| template<camera_model CameraT> | |
| std::vector< Eigen::Vector3d > | points_from_view (LineScanView view, const CameraT &camera) |
| double | plane_rms (const std::vector< Eigen::Vector3d > &pts, const Eigen::Vector4d &plane) |
| template<camera_model CameraT> | |
| LineScanCalibrationResult | calibrate_laser_plane (const std::vector< LineScanView > &views, const CameraT &camera, const LineScanPlaneFitOptions &opts={}) |
| auto | pose_from_homography_normalized (const Eigen::Matrix3d &hmtx) -> Eigen::Isometry3d |
| auto | estimate_planar_pose (PlanarView view, const CameraMatrix &intrinsics) -> Eigen::Isometry3d |
| template<camera_model CameraT> | |
| auto | estimate_planar_pose (PlanarView view, const CameraT &camera) -> Eigen::Isometry3d |
| auto | fit_plane_svd (const std::vector< Eigen::Vector3d > &pts) -> Eigen::Vector4d |
| auto | fit_plane_ransac (const std::vector< Eigen::Vector3d > &pts, const RansacOptions &opts={}) -> PlaneRansacResult |
| auto | pose_from_homography (const CameraMatrix &kmtx, const Eigen::Matrix3d &hmtx) -> PoseFromHResult |
| Estimates the camera pose from a homography matrix. | |
| auto | homography_consistency_fro (const CameraMatrix &kmtx, const Eigen::Isometry3d &c_se3_t, const Eigen::Matrix3d &hmtx) -> double |
| A quick consistency check. | |
| auto | zhang_intrinsics_from_hs (const std::vector< HomographyResult > &hs) -> std::optional< CameraMatrix > |
| template<camera_model CameraT> | |
| auto | optimize_bundle (const std::vector< BundleObservation > &observations, const std::vector< CameraT > &initial_cameras, const std::vector< Eigen::Isometry3d > &init_g_se3_c, const Eigen::Isometry3d &init_b_se3_t, const BundleOptions &opts={}) -> BundleResult< CameraT > |
| Perform bundle-adjustment style optimisation of the hand-eye calibration problem. | |
| template<camera_model CameraT> | |
| auto | optimize_extrinsics (const std::vector< MulticamPlanarView > &views, const std::vector< CameraT > &init_cameras, const std::vector< Eigen::Isometry3d > &init_c_se3_r, const std::vector< Eigen::Isometry3d > &init_r_se3_t, const ExtrinsicOptions &opts={}) -> ExtrinsicOptimizationResult< CameraT > |
| auto | optimize_handeye (const std::vector< Eigen::Isometry3d > &base_se3_gripper, const std::vector< Eigen::Isometry3d > &camera_se3_target, const Eigen::Isometry3d &init_gripper_se3_ref, const OptimOptions &options={}) -> HandeyeResult |
| Refines the hand-eye calibration transformation using an optimization process. | |
| auto | estimate_and_optimize_handeye (const std::vector< Eigen::Isometry3d > &base_se3_gripper, const std::vector< Eigen::Isometry3d > &camera_se3_target, double min_angle_deg=1.0, const OptimOptions &options={}) -> HandeyeResult |
| Estimates and refines the hand-eye transformation. | |
| auto | optimize_homography (const PlanarView &data, const Eigen::Matrix3d &init_h, const OptimOptions &options={}) -> OptimizeHomographyResult |
| auto | optimize_intrinsics_semidlt (const std::vector< PlanarView > &views, const CameraMatrix &initial_guess, const IntrinsicsOptimOptions &opts={}) -> IntrinsicsOptimizationResult< PinholeCamera< BrownConradyd > > |
| template<camera_model CameraT> | |
| auto | optimize_intrinsics (const std::vector< PlanarView > &views, const CameraT &init_camera, std::vector< Eigen::Isometry3d > init_c_se3_t, const IntrinsicsOptimOptions &opts={}) -> IntrinsicsOptimizationResult< CameraT > |
| NLOHMANN_JSON_SERIALIZE_ENUM (OptimizerType, {{OptimizerType::DEFAULT, "default"}, {OptimizerType::SPARSE_SCHUR, "sparse_schur"}, {OptimizerType::DENSE_SCHUR, "dense_schur"}, {OptimizerType::DENSE_QR, "dense_qr"}}) struct OptimOptions final | |
| auto | optimize_planar_pose (const PlanarView &view, const CameraMatrix &intrinsics, const Eigen::Isometry3d &init_pose, const PlanarPoseOptions &opts={}) -> PlanarPoseResult |
| template<class T , std::enable_if_t< std::is_aggregate_v< T >, int > = 0> | |
| void | to_json (nlohmann::json &j, const T &value) |
| template<class T , std::enable_if_t< std::is_aggregate_v< T >, int > = 0> | |
| void | from_json (const nlohmann::json &j, T &value) |
| template<typename Scalar > | |
| auto | matrix (const CameraMatrixT< Scalar > &cam) -> Eigen::Matrix< Scalar, 3, 3 > |
| template<typename T , typename Scalar > | |
| auto | normalize (const CameraMatrixT< Scalar > &cam, const Eigen::Matrix< T, 2, 1 > &pixel) -> Eigen::Matrix< T, 2, 1 > |
| template<typename T , typename Scalar > | |
| auto | denormalize (const CameraMatrixT< Scalar > &cam, const Eigen::Matrix< T, 2, 1 > &norm_xy) -> Eigen::Matrix< T, 2, 1 > |
| template<typename T > | |
| auto | apply_distortion (const Eigen::Matrix< T, 2, 1 > &norm_xy, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &coeffs) -> Eigen::Matrix< T, 2, 1 > |
| Apply lens distortion to normalized coordinates. | |
| template<typename T > | |
| auto | undistort (Eigen::Matrix< T, 2, 1 > norm_xy, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &coeffs) -> Eigen::Matrix< T, 2, 1 > |
| template<typename Scalar > | |
| auto | invert_brown_conrady (const Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &forward) -> Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > |
| template<typename T > | |
| auto | fit_distortion_full (const std::vector< Observation< T > > &observations, const CameraMatrixT< T > &intrinsics, int num_radial=2, std::span< const int > fixed_indices={}, std::span< const T > fixed_values={}) -> std::optional< DistortionWithResiduals< T > > |
| template<typename T > | |
| auto | fit_distortion (const std::vector< Observation< T > > &observations, const CameraMatrixT< T > &intrinsics, int num_radial=2, std::span< const int > fixed_indices={}, std::span< const T > fixed_values={}) -> std::optional< DistortionWithResiduals< T > > |
| auto | fit_distortion_dual (const std::vector< Observation< double > > &observations, const CameraMatrix &intrinsics, int num_radial=2, std::span< const int > fixed_indices={}, std::span< const double > fixed_values={}) -> std::optional< DualDistortionWithResiduals > |
| void | to_json (nlohmann::json &j, const DualDistortion &d) |
| void | from_json (const nlohmann::json &j, DualDistortion &d) |
| void | to_json (nlohmann::json &j, const BrownConradyd &d) |
| void | from_json (const nlohmann::json &j, BrownConradyd &d) |
| template<distortion_model DistortionT> | |
| void | to_json (nlohmann::json &j, const PinholeCamera< DistortionT > &cam) |
| template<distortion_model DistortionT> | |
| void | from_json (const nlohmann::json &j, PinholeCamera< DistortionT > &cam) |
| void | solve_problem (ceres::Problem &problem, const OptimOptions &opts, OptimResult *result) |
| auto | compute_covariance (const ProblemParamBlocks &problem_param_blocks, ceres::Problem &problem, double sum_squared_residuals=0, size_t total_residuals=0) -> std::optional< Eigen::MatrixXd > |
| template<typename T > | |
| static Eigen::Matrix< T, 3, 1 > | array_to_translation (const T *const arr) |
| template<typename T > | |
| static Eigen::Matrix< T, 3, 3 > | quat_array_to_rotmat (const T *const arr) |
| template<typename T > | |
| std::pair< Eigen::Matrix< T, 3, 3 >, Eigen::Matrix< T, 3, 1 > > | invert_transform (const Eigen::Matrix< T, 3, 3 > &rotation, const Eigen::Matrix< T, 3, 1 > &translation) |
| template<typename T > | |
| std::pair< Eigen::Matrix< T, 3, 3 >, Eigen::Matrix< T, 3, 1 > > | product (const Eigen::Matrix< T, 3, 3 > &rotation1, const Eigen::Matrix< T, 3, 1 > &translation1, const Eigen::Matrix< T, 3, 3 > &rotation2, const Eigen::Matrix< T, 3, 1 > &translation2) |
| void | populate_quat_tran (const Eigen::Isometry3d &pose, std::array< double, 4 > &quat, std::array< double, 3 > &translation) |
| Eigen::Quaterniond | array_to_norm_quat (const std::array< double, 4 > &arr) |
| Eigen::Isometry3d | restore_pose (const std::array< double, 4 > &quat, const std::array< double, 3 > &translation) |
| Eigen::Isometry3d | array_to_pose (const double *pose) |
| template<typename T > | |
| static void | planar_observables_to_observables (const PlanarView &planar_obs, std::vector< Observation< T > > &obs, const Eigen::Transform< T, 3, Eigen::Isometry > &camera_se3_target) |
| template<typename T > | |
| Observation< T > | to_observation (const PlanarObservation &obs, const T *pose6) |
| static auto | make_motion_pair (const Eigen::Isometry3d &base_se3_gripper_a, const Eigen::Isometry3d &cam_se3_target_a, const Eigen::Isometry3d &base_se3_gripper_b, const Eigen::Isometry3d &cam_se3_target_b) -> MotionPair |
| static auto | is_good_pair (const MotionPair &motion_pair, double min_angle, bool reject_axis_parallel, double axis_parallel_eps) -> bool |
| static auto | estimate_rotation_allpairs_weighted (const std::vector< MotionPair > &pairs) -> Eigen::Matrix3d |
| static auto | estimate_translation_allpairs_weighted (const std::vector< MotionPair > &pairs, const Eigen::Matrix3d &rot_x) -> Eigen::Vector3d |
| static auto | normalize_points_2d (const std::vector< Eigen::Vector2d > &pts, std::vector< Eigen::Vector2d > &out) -> Eigen::Matrix3d |
| static auto | dlt_homography_normalized (const std::vector< Eigen::Vector2d > &src_xy, const std::vector< Eigen::Vector2d > &dst_uv) -> Eigen::Matrix3d |
| static auto | normalize_and_estimate_homography (const std::vector< Eigen::Vector2d > &src, const std::vector< Eigen::Vector2d > &dst) -> Eigen::Matrix3d |
| static auto | symmetric_transfer_error (const Eigen::Matrix3d &hmtx, const Eigen::Vector2d &xy, const Eigen::Vector2d &uv) -> double |
| static auto | symmetric_rms_px (const Eigen::Matrix3d &hmtx, const PlanarView &view, std::span< const int > inliers) -> double |
| static auto | compute_planar_homographies (const std::vector< PlanarView > &views, const std::optional< RansacOptions > &ransac_opts) -> std::vector< HomographyResult > |
| static auto | process_planar_view (const CameraMatrix &kmtx, const HomographyResult &hres) -> ViewEstimateData |
| static auto | build_u_system (const std::vector< Observation< double > > &obs, bool use_skew) -> LinearSystem |
| static auto | build_v_system (const std::vector< Observation< double > > &obs) -> LinearSystem |
| static auto | solve_linear_system (const LinearSystem &system) -> std::optional< Eigen::VectorXd > |
| static auto | apply_bounds_and_fallback (const Eigen::VectorXd &xu, const Eigen::VectorXd &xv, const std::vector< Observation< double > > &obs, const CalibrationBounds &bounds, bool use_skew) -> CameraMatrix |
| static auto | correct_observations_for_distortion (const std::vector< Observation< double > > &obs, const CameraMatrix &kmtx, const Eigen::VectorXd &distortion) -> std::vector< Observation< double > > |
| static auto | compute_camera_matrix_difference (const CameraMatrix &k1, const CameraMatrix &k2) -> double |
| static auto | estimate_distortion_for_camera (const std::vector< Observation< double > > &obs, const CameraMatrix &kmtx, int num_radial) -> std::optional< Eigen::VectorXd > |
| static auto | zhang_bmtx (const Eigen::VectorXd &b) -> Eigen::Matrix3d |
| Constructs B = K^{-T} K^{-1} from the 6-vector b. | |
| static void | check_conic_decomposition (const Eigen::Matrix3d &bmtx, const Eigen::Matrix3d &kmtx) |
| static auto | kmtx_from_dual_conic (const Eigen::VectorXd &bv) -> std::optional< Eigen::Matrix3d > |
| static auto | v_ij (const Eigen::Matrix3d &hmtx, int i, int j) -> Eigen::Matrix< double, 1, 6 > |
| static auto | normalize_hmtx (const Eigen::Matrix3d &hmtx) -> Eigen::Matrix3d |
| static auto | make_zhang_design_matrix (const std::vector< HomographyResult > &hs) -> std::optional< Eigen::MatrixXd > |
| template<camera_model CameraT> | |
| static auto | build_problem (const std::vector< BundleObservation > &observations, const BundleOptions &opts, BundleBlocks< CameraT > &blocks) -> ceres::Problem |
| template<camera_model CameraT> | |
| void | validate_input (const std::vector< BundleObservation > &observations, const std::vector< CameraT > &initial_cameras) |
| template<camera_model CameraT> | |
| BundleResult< CameraT > | optimize_bundle (const std::vector< BundleObservation > &observations, const std::vector< CameraT > &initial_cameras, const std::vector< Eigen::Isometry3d > &init_g_se3_c, const Eigen::Isometry3d &init_b_se3_t, const BundleOptions &opts) |
| Perform bundle-adjustment style optimisation of the hand-eye calibration problem. | |
| template BundleResult< PinholeCamera< BrownConradyd > > | optimize_bundle (const std::vector< BundleObservation > &, const std::vector< PinholeCamera< BrownConradyd > > &, const std::vector< Eigen::Isometry3d > &, const Eigen::Isometry3d &, const BundleOptions &) |
| template BundleResult< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > | optimize_bundle (const std::vector< BundleObservation > &, const std::vector< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > &, const std::vector< Eigen::Isometry3d > &, const Eigen::Isometry3d &, const BundleOptions &) |
| template<camera_model CameraT> | |
| static void | set_residual_blocks (ceres::Problem &problem, const std::vector< MulticamPlanarView > &views, const std::vector< CameraT > &cameras, const ExtrinsicOptions &options, ExtrinsicBlocks< CameraT > &blocks) |
| template<camera_model CameraT> | |
| static void | set_param_constraints (ceres::Problem &problem, const ExtrinsicOptions &options, ExtrinsicBlocks< CameraT > &blocks) |
| template<camera_model CameraT> | |
| static auto | build_problem (const std::vector< MulticamPlanarView > &views, const std::vector< CameraT > &cameras, const ExtrinsicOptions &options, ExtrinsicBlocks< CameraT > &blocks) -> ceres::Problem |
| template<camera_model CameraT> | |
| static void | validate_input (const std::vector< CameraT > &init_cameras, const std::vector< Eigen::Isometry3d > &init_c_se3_r, const std::vector< Eigen::Isometry3d > &init_r_se3_t, const std::vector< MulticamPlanarView > &views) |
| template<camera_model CameraT> | |
| ExtrinsicOptimizationResult< CameraT > | optimize_extrinsics (const std::vector< MulticamPlanarView > &views, const std::vector< CameraT > &init_cameras, const std::vector< Eigen::Isometry3d > &init_c_se3_r, const std::vector< Eigen::Isometry3d > &init_r_se3_t, const ExtrinsicOptions &opts) |
| template ExtrinsicOptimizationResult< PinholeCamera< BrownConradyd > > | optimize_extrinsics (const std::vector< MulticamPlanarView > &, const std::vector< PinholeCamera< BrownConradyd > > &, const std::vector< Eigen::Isometry3d > &, const std::vector< Eigen::Isometry3d > &, const ExtrinsicOptions &) |
| template ExtrinsicOptimizationResult< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > | optimize_extrinsics (const std::vector< MulticamPlanarView > &, const std::vector< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > &, const std::vector< Eigen::Isometry3d > &, const std::vector< Eigen::Isometry3d > &, const ExtrinsicOptions &) |
| static auto | build_problem (const std::vector< MotionPair > &pairs, const OptimOptions &opts, HandeyeBlocks &blocks) -> ceres::Problem |
| static auto | symmetric_rms_px (const Eigen::Matrix3d &hmtx, const std::vector< PlanarObservation > &data, std::span< const int > inliers) -> double |
| static void | estimate_homography_dlt (const PlanarView &data, HomographyResult &result) |
| static void | estimate_homography_ransac (const PlanarView &data, HomographyResult &result, const RansacOptions &ransac_opts) |
| static auto | params_to_h (const HomographyParams ¶ms) -> Mat3 |
| static ceres::Problem | build_problem (const PlanarView &data, const OptimOptions &options, HomographyBlocks &blocks) |
| template<camera_model CameraT> | |
| static ceres::Problem | build_problem (const std::vector< PlanarView > &views, const IntrinsicsOptimOptions &opts, IntrinsicBlocks< CameraT > &blocks) |
| static void | validate_input (const std::vector< PlanarView > &views) |
| template auto | optimize_intrinsics (const std::vector< PlanarView > &views, const PinholeCamera< BrownConradyd > &init_camera, std::vector< Eigen::Isometry3d > init_c_se3_t, const IntrinsicsOptimOptions &opts) -> IntrinsicsOptimizationResult< PinholeCamera< BrownConradyd > > |
| template auto | optimize_intrinsics (const std::vector< PlanarView > &views, const ScheimpflugCamera< PinholeCamera< BrownConradyd > > &init_camera, std::vector< Eigen::Isometry3d > init_c_se3_t, const IntrinsicsOptimOptions &opts) -> IntrinsicsOptimizationResult< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > |
| static size_t | count_total_observations (const std::vector< PlanarView > &views) |
| static auto | solve_full (const std::vector< PlanarView > &views, const IntrinsicBlocks &blocks, const IntrinsicsOptimOptions &opts) -> std::optional< DistortionWithResiduals< double > > |
| static ceres::Problem | build_problem (const std::vector< PlanarView > &obs_views, IntrinsicBlocks &blocks, const IntrinsicsOptimOptions &opts) |
| static void | compute_per_view_errors (const std::vector< PlanarView > &obs_views, const Eigen::VectorXd &residuals, IntrinsicsOptimizationResult< PinholeCamera< BrownConradyd > > &result) |
| static auto | axisangle_to_pose (const Pose6 &pose6) -> Eigen::Isometry3d |
| template<typename T > | |
| static std::pair< Eigen::Matrix< T, 3, 3 >, Eigen::Matrix< T, 3, 1 > > | get_camera_se3_target (const Eigen::Matrix< T, 3, 3 > &b_rot_t, const Eigen::Matrix< T, 3, 1 > &b_tra_t, const Eigen::Matrix< T, 3, 3 > &g_rot_c, const Eigen::Matrix< T, 3, 1 > &g_tra_c, const Eigen::Matrix< T, 3, 3 > &b_rot_g, const Eigen::Matrix< T, 3, 1 > &b_tra_g) |
| template<typename T > | |
| static std::pair< Eigen::Matrix< T, 3, 3 >, Eigen::Matrix< T, 3, 1 > > | get_camera_se3_target (const Eigen::Matrix< T, 3, 3 > &c_rot_r, const Eigen::Matrix< T, 3, 1 > &c_tra_r, const Eigen::Matrix< T, 3, 3 > &r_rot_t, const Eigen::Matrix< T, 3, 1 > &r_tra_t) |
Variables | |
| constexpr int | k_default_max_iterations = 5 |
| Improved linear initialization with distortion estimation. | |
| static const std::map< OptimizerType, ceres::LinearSolverType > | optim_to_ceres |
Linear multi-camera extrinsics initialisation (DLT)
Semi-linear residual for intrinsic camera parameters.
Residual for camera intrinsics optimization.
Ceres residuals for hand-eye optimization Three residuals are defined:
Residual for joint extrinsic-intrinsic optimization.
Residuals for bundle adjustment with ceres.
Utility functions for working with image observations.
Ceres solver utilities.
Ceres-based planar pose optimization interfaces.
Ceres-based intrinsic optimization interfaces.
Ceres-based homography optimization interfaces.
Ceres-based multi-camera extrinsics optimization interfaces.
Classical Zhang camera calibration method.
Planar target pose from homography.
Linear planar pose estimation interfaces (header-only helpers)
Linear intrinsic estimation interfaces.
Linear homography estimation interfaces (DLT/RANSAC)
| using calib::BrownConradyd = typedef BrownConrady<double> |
Definition at line 163 of file distortion.h.
| using calib::Camera = typedef PinholeCamera<DistortionT> |
| using calib::CameraMatrix = typedef CameraMatrixT<double> |
Definition at line 48 of file camera_matrix.h.
| using calib::Datum = typedef HomographyEstimator::Datum |
Definition at line 96 of file homographyestimator.cpp.
| using calib::DualDistortion = typedef DualBrownConrady<double> |
Definition at line 221 of file distortion.h.
| using calib::HomographyParams = typedef std::array<double, 8> |
Definition at line 77 of file homography.cpp.
| using calib::Mat3 = typedef Eigen::Matrix3d |
Definition at line 76 of file homography.cpp.
| using calib::Model = typedef HomographyEstimator::Model |
Definition at line 95 of file homographyestimator.cpp.
| using calib::MulticamPlanarView = typedef std::vector<PlanarView> |
Definition at line 20 of file extrinsics.h.
| using calib::PlanarView = typedef std::vector<PlanarObservation> |
Definition at line 26 of file planarpose.h.
| using calib::Pose6 = typedef Eigen::Matrix<double, 6, 1> |
Definition at line 19 of file planarpose.cpp.
| using calib::Vec2 = typedef Eigen::Vector2d |
Definition at line 75 of file homography.cpp.
|
strong |
| Enumerator | |
|---|---|
| DEFAULT | |
| SPARSE_SCHUR | |
| DENSE_SCHUR | |
| DENSE_QR | |
Definition at line 17 of file optimize.h.
|
static |
Definition at line 205 of file intrinsicsdlt.cpp.
| auto calib::apply_distortion | ( | const Eigen::Matrix< T, 2, 1 > & | norm_xy, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | coeffs | ||
| ) | -> Eigen::Matrix<T, 2, 1> |
Apply lens distortion to normalized coordinates.
Applies radial and tangential distortion to normalized 2D coordinates using the Brown-Conrady distortion model. The distortion coefficients are ordered as [k1, k2, ..., kn, p1, p2] where ki are radial distortion coefficients and p1, p2 are tangential distortion coefficients.
| T | Scalar type (float, double, etc.) |
| norm_xy | Normalized undistorted 2D coordinates |
| coeffs | Distortion coefficients vector (minimum 2 elements) |
| std::runtime_error | if coeffs has fewer than 2 elements |
Definition at line 93 of file distortion.h.
|
inline |
Definition at line 50 of file observationutils.h.
|
inline |
Definition at line 68 of file observationutils.h.
|
static |
Definition at line 16 of file observationutils.h.
|
inline |
Definition at line 75 of file se3_utils.h.
|
static |
Definition at line 73 of file planarpose.cpp.
| auto calib::build_all_pairs | ( | const std::vector< Eigen::Isometry3d > & | base_se3_gripper, |
| const std::vector< Eigen::Isometry3d > & | cam_se3_target, | ||
| double | min_angle_deg = 1.0, |
||
| bool | reject_axis_parallel = true, |
||
| double | axis_parallel_eps = 1e-3 |
||
| ) | -> std::vector<MotionPair> |
Generate all valid motion pairs from pose sequences.
Creates motion pairs from sequences of robot and camera poses, filtering out motions that are too small or have parallel axes to ensure numerical stability.
| base_se3_gripper | Robot base to gripper transformations |
| cam_se3_target | Camera to target transformations |
| min_angle_deg | Minimum rotation angle to accept (degrees) |
| reject_axis_parallel | Whether to reject parallel rotation axes |
| axis_parallel_eps | Threshold for parallel axis detection |
Definition at line 51 of file handeyedlt.cpp.
|
inline |
Definition at line 49 of file linescan.h.
|
static |
Definition at line 131 of file homography.cpp.
|
static |
Definition at line 84 of file bundle.cpp.
|
static |
Definition at line 45 of file handeye.cpp.
|
static |
Definition at line 153 of file extrinsics.cpp.
|
static |
Definition at line 95 of file intrinsicssemidlt.cpp.
|
static |
Definition at line 64 of file intrinsics.cpp.
|
static |
Definition at line 152 of file intrinsicsdlt.cpp.
|
static |
Definition at line 177 of file intrinsicsdlt.cpp.
| LineScanCalibrationResult calib::calibrate_laser_plane | ( | const std::vector< LineScanView > & | views, |
| const CameraT & | camera, | ||
| const LineScanPlaneFitOptions & | opts = {} |
||
| ) |
Definition at line 102 of file linescan.h.
|
static |
|
static |
Definition at line 268 of file intrinsicsdlt.cpp.
|
inline |
Definition at line 69 of file ceresutils.h.
|
static |
Definition at line 137 of file intrinsicssemidlt.cpp.
|
static |
Definition at line 32 of file intrinsicsdlt.cpp.
|
static |
Definition at line 247 of file intrinsicsdlt.cpp.
|
static |
Definition at line 19 of file intrinsicssemidlt.cpp.
| auto calib::denormalize | ( | const CameraMatrixT< Scalar > & | cam, |
| const Eigen::Matrix< T, 2, 1 > & | norm_xy | ||
| ) | -> Eigen::Matrix<T, 2, 1> |
Definition at line 42 of file camera_matrix.h.
|
static |
Definition at line 45 of file homographyestimator.cpp.
| auto calib::estimate_and_optimize_handeye | ( | const std::vector< Eigen::Isometry3d > & | base_se3_gripper, |
| const std::vector< Eigen::Isometry3d > & | camera_se3_target, | ||
| double | min_angle_deg = 1.0, |
||
| const OptimOptions & | options = {} |
||
| ) | -> HandeyeResult |
Estimates and refines the hand-eye transformation.
This function computes the hand-eye transformation matrix that relates the coordinate frame of a robotic gripper (end-effector) to the coordinate frame of a camera mounted on the gripper. The estimation is performed using the provided transformations, and an optional refinement step can be applied.
| base_se3_gripper | A vector of transformations representing the pose of the gripper relative to the robot base for multiple measurements. |
| camera_se3_target | A vector of transformations representing the pose of the calibration target relative to the camera for the same measurements. |
| min_angle_deg | The minimum angular threshold (in degrees) to filter out small rotations during the refinement process. Default is 1.0 degrees. |
| ro | Options for the refinement process, encapsulated in a RefinementOptions structure. Default is an empty RefinementOptions object. |
Definition at line 80 of file handeye.cpp.
|
static |
Definition at line 274 of file intrinsicsdlt.cpp.
| auto calib::estimate_extrinsic_dlt | ( | const std::vector< MulticamPlanarView > & | views, |
| const std::vector< CameraT > & | cameras | ||
| ) | -> ExtrinsicPoses |
Definition at line 28 of file extrinsics.h.
| auto calib::estimate_handeye_dlt | ( | const std::vector< Eigen::Isometry3d > & | base_se3_gripper, |
| const std::vector< Eigen::Isometry3d > & | camera_se3_target, | ||
| double | min_angle_deg = 1.0 |
||
| ) | -> Eigen::Isometry3d |
Estimates the hand-eye transformation using the Tsai-Lenz algorithm with all pairs of input transformations and weighted averaging.
This function computes the hand-eye transformation that relates the motion of a robotic gripper (end-effector) to the motion of a camera mounted on the gripper. It uses the Tsai-Lenz algorithm and considers all pairs of input transformations, applying a weighting scheme to improve the robustness of the estimation.
| base_se3_gripper | A vector of transformations representing the motion of the gripper relative to the robot base. Each transformation is an Eigen::Isometry3d object. |
| camera_se3_target | A vector of transformations representing the motion of the calibration target relative to the camera. Each transformation is an Eigen::Isometry3d object. |
| min_angle_deg | The minimum angular difference (in degrees) between two transformations to be considered for pairing. This parameter helps to filter out pairs with insufficient motion, which may lead to numerical instability. Default value is 1.0 degrees. |
base_se3_gripper and camera_se3_target must have the same size, and each pair of corresponding transformations must represent the same motion in the respective coordinate frames. | std::invalid_argument | If the input vectors have different sizes or if there are insufficient valid pairs for the estimation. |
Definition at line 122 of file handeyedlt.cpp.
| auto calib::estimate_homography | ( | const PlanarView & | data, |
| std::optional< RansacOptions > | ransac_opts = std::nullopt |
||
| ) | -> HomographyResult |
Definition at line 62 of file homography.cpp.
|
static |
Definition at line 30 of file homography.cpp.
|
static |
Definition at line 45 of file homography.cpp.
| auto calib::estimate_intrinsics | ( | const std::vector< PlanarView > & | views, |
| const IntrinsicsEstimOptions & | opts = {} |
||
| ) | -> IntrinsicsEstimateResult |
Estimate camera intrinsics from planar views using a linear method.
Definition at line 101 of file intrinsicsdlt.cpp.
| std::optional< CameraMatrix > calib::estimate_intrinsics_linear | ( | const std::vector< Observation< double > > & | observations, |
| std::optional< CalibrationBounds > | bounds = std::nullopt, |
||
| bool | use_skew = false |
||
| ) | -> std::optional<CameraMatrix> |
Linear estimate with normalized observations.
Definition at line 289 of file intrinsicsdlt.cpp.
| auto calib::estimate_intrinsics_linear_iterative | ( | const std::vector< Observation< double > > & | observations, |
| int | num_radial, | ||
| int | max_iterations = k_default_max_iterations, |
||
| bool | use_skew = false |
||
| ) | -> std::optional<PinholeCamera<BrownConradyd>> |
Definition at line 319 of file intrinsicsdlt.cpp.
| auto calib::estimate_planar_pose | ( | PlanarView | view, |
| const CameraMatrix & | intrinsics | ||
| ) | -> Eigen::Isometry3d |
Definition at line 54 of file planarpose_linear.cpp.
| auto calib::estimate_planar_pose | ( | PlanarView | view, |
| const CameraT & | camera | ||
| ) | -> Eigen::Isometry3d |
Definition at line 39 of file planarpose.h.
|
static |
Definition at line 84 of file handeyedlt.cpp.
|
static |
Definition at line 102 of file handeyedlt.cpp.
|
inline |
Definition at line 42 of file se3_utils.h.
| auto calib::fit_distortion | ( | const std::vector< Observation< T > > & | observations, |
| const CameraMatrixT< T > & | intrinsics, | ||
| int | num_radial = 2, |
||
| std::span< const int > | fixed_indices = {}, |
||
| std::span< const T > | fixed_values = {} |
||
| ) | -> std::optional<DistortionWithResiduals<T>> |
Definition at line 366 of file distortion.h.
|
inline |
Definition at line 373 of file distortion.h.
| auto calib::fit_distortion_full | ( | const std::vector< Observation< T > > & | observations, |
| const CameraMatrixT< T > & | intrinsics, | ||
| int | num_radial = 2, |
||
| std::span< const int > | fixed_indices = {}, |
||
| std::span< const T > | fixed_values = {} |
||
| ) | -> std::optional<DistortionWithResiduals<T>> |
Definition at line 231 of file distortion.h.
| auto calib::fit_plane_ransac | ( | const std::vector< Eigen::Vector3d > & | pts, |
| const RansacOptions & | opts = {} |
||
| ) | -> PlaneRansacResult |
Definition at line 87 of file planefit.cpp.
| auto calib::fit_plane_svd | ( | const std::vector< Eigen::Vector3d > & | pts | ) | -> Eigen::Vector4d |
Definition at line 68 of file planefit.cpp.
|
inline |
Definition at line 418 of file distortion.h.
|
inline |
Definition at line 411 of file distortion.h.
|
inline |
| void calib::from_json | ( | const nlohmann::json & | j, |
| T & | value | ||
| ) |
|
static |
Definition at line 16 of file bundleresidual.h.
|
static |
Definition at line 15 of file extrinsicsresidual.h.
| auto calib::homography_consistency_fro | ( | const CameraMatrix & | kmtx, |
| const Eigen::Isometry3d & | c_se3_t, | ||
| const Eigen::Matrix3d & | hmtx | ||
| ) | -> double |
A quick consistency check.
Returns ||K [R(:,1) R(:,2) t] - H||_F / ||H||_F. Values ~ 1e-3..1e-2 are typical when H was estimated from the same correspondences used.
Definition at line 69 of file posefromhomography.cpp.
|
inline |
Definition at line 166 of file distortion.h.
| std::pair< Eigen::Matrix< T, 3, 3 >, Eigen::Matrix< T, 3, 1 > > calib::invert_transform | ( | const Eigen::Matrix< T, 3, 3 > & | rotation, |
| const Eigen::Matrix< T, 3, 1 > & | translation | ||
| ) |
Definition at line 27 of file observationutils.h.
|
static |
Definition at line 25 of file handeyedlt.cpp.
|
static |
|
inline |
Definition at line 27 of file se3_utils.h.
|
static |
Definition at line 11 of file handeyedlt.cpp.
|
static |
| auto calib::matrix | ( | const CameraMatrixT< Scalar > & | cam | ) | -> Eigen::Matrix<Scalar, 3, 3> |
Definition at line 22 of file camera_matrix.h.
|
final |
Definition at line 19 of file optimize.h.
| auto calib::normalize | ( | const CameraMatrixT< Scalar > & | cam, |
| const Eigen::Matrix< T, 2, 1 > & | pixel | ||
| ) | -> Eigen::Matrix<T, 2, 1> |
Definition at line 34 of file camera_matrix.h.
|
static |
Definition at line 69 of file homographyestimator.cpp.
|
static |
|
static |
Definition at line 16 of file homographyestimator.cpp.
| template BundleResult< PinholeCamera< BrownConradyd > > calib::optimize_bundle | ( | const std::vector< BundleObservation > & | , |
| const std::vector< PinholeCamera< BrownConradyd > > & | , | ||
| const std::vector< Eigen::Isometry3d > & | , | ||
| const Eigen::Isometry3d & | , | ||
| const BundleOptions & | |||
| ) |
| template BundleResult< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > calib::optimize_bundle | ( | const std::vector< BundleObservation > & | , |
| const std::vector< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > & | , | ||
| const std::vector< Eigen::Isometry3d > & | , | ||
| const Eigen::Isometry3d & | , | ||
| const BundleOptions & | |||
| ) |
| BundleResult< CameraT > calib::optimize_bundle | ( | const std::vector< BundleObservation > & | observations, |
| const std::vector< CameraT > & | initial_cameras, | ||
| const std::vector< Eigen::Isometry3d > & | init_g_se3_c, | ||
| const Eigen::Isometry3d & | init_b_se3_t, | ||
| const BundleOptions & | opts = {} |
||
| ) | -> BundleResult< CameraT > |
Perform bundle-adjustment style optimisation of the hand-eye calibration problem.
Supports single or multiple cameras and optional optimisation of intrinsics and the target pose.
| observations | Set of observations with robot poses and target detections |
| initial_cameras | Initial camera parameters |
| init_g_se3_c | Initial estimate of hand-eye transformations |
| init_b_se3_t | Initial estimate of base-to-target transformation |
| opts | Optimization options |
Definition at line 148 of file bundle.cpp.
| auto calib::optimize_bundle | ( | const std::vector< BundleObservation > & | observations, |
| const std::vector< CameraT > & | initial_cameras, | ||
| const std::vector< Eigen::Isometry3d > & | init_g_se3_c, | ||
| const Eigen::Isometry3d & | init_b_se3_t, | ||
| const BundleOptions & | opts = {} |
||
| ) | -> BundleResult< CameraT > |
Perform bundle-adjustment style optimisation of the hand-eye calibration problem.
Supports single or multiple cameras and optional optimisation of intrinsics and the target pose.
| observations | Set of observations with robot poses and target detections |
| initial_cameras | Initial camera parameters |
| init_g_se3_c | Initial estimate of hand-eye transformations |
| init_b_se3_t | Initial estimate of base-to-target transformation |
| opts | Optimization options |
Definition at line 148 of file bundle.cpp.
| template ExtrinsicOptimizationResult< PinholeCamera< BrownConradyd > > calib::optimize_extrinsics | ( | const std::vector< MulticamPlanarView > & | , |
| const std::vector< PinholeCamera< BrownConradyd > > & | , | ||
| const std::vector< Eigen::Isometry3d > & | , | ||
| const std::vector< Eigen::Isometry3d > & | , | ||
| const ExtrinsicOptions & | |||
| ) |
| template ExtrinsicOptimizationResult< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > calib::optimize_extrinsics | ( | const std::vector< MulticamPlanarView > & | , |
| const std::vector< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > & | , | ||
| const std::vector< Eigen::Isometry3d > & | , | ||
| const std::vector< Eigen::Isometry3d > & | , | ||
| const ExtrinsicOptions & | |||
| ) |
| ExtrinsicOptimizationResult< CameraT > calib::optimize_extrinsics | ( | const std::vector< MulticamPlanarView > & | views, |
| const std::vector< CameraT > & | init_cameras, | ||
| const std::vector< Eigen::Isometry3d > & | init_c_se3_r, | ||
| const std::vector< Eigen::Isometry3d > & | init_r_se3_t, | ||
| const ExtrinsicOptions & | opts | ||
| ) |
Definition at line 175 of file extrinsics.cpp.
| auto calib::optimize_extrinsics | ( | const std::vector< MulticamPlanarView > & | views, |
| const std::vector< CameraT > & | init_cameras, | ||
| const std::vector< Eigen::Isometry3d > & | init_c_se3_r, | ||
| const std::vector< Eigen::Isometry3d > & | init_r_se3_t, | ||
| const ExtrinsicOptions & | opts = {} |
||
| ) | -> ExtrinsicOptimizationResult< CameraT > |
Definition at line 175 of file extrinsics.cpp.
| auto calib::optimize_handeye | ( | const std::vector< Eigen::Isometry3d > & | base_se3_gripper, |
| const std::vector< Eigen::Isometry3d > & | camera_se3_target, | ||
| const Eigen::Isometry3d & | init_gripper_se3_ref, | ||
| const OptimOptions & | options = {} |
||
| ) | -> HandeyeResult |
Refines the hand-eye calibration transformation using an optimization process.
This function takes a set of transformations representing the motion of the gripper relative to the robot base and the motion of the calibration target relative to the camera. It refines the initial estimate of the hand-eye transformation using the provided options.
| base_se3_gripper | A vector of transformations representing the motion of the gripper relative to the robot base. Each transformation corresponds to a specific pose of the gripper. |
| camera_se3_target | A vector of transformations representing the motion of the calibration target relative to the camera. Each transformation corresponds to a specific pose of the target. |
| init_gripper_se3_ref | The initial estimate of the transformation from the gripper to the reference frame (hand-eye transformation). |
| options | Optional refinement options that control the optimization process. Defaults to an empty set of options. |
Definition at line 60 of file handeye.cpp.
| OptimizeHomographyResult calib::optimize_homography | ( | const PlanarView & | data, |
| const Eigen::Matrix3d & | init_h, | ||
| const OptimOptions & | options = {} |
||
| ) | -> OptimizeHomographyResult |
Definition at line 144 of file homography.cpp.
| auto calib::optimize_intrinsics | ( | const std::vector< PlanarView > & | views, |
| const CameraT & | init_camera, | ||
| std::vector< Eigen::Isometry3d > | init_c_se3_t, | ||
| const IntrinsicsOptimOptions & | opts = {} |
||
| ) | -> IntrinsicsOptimizationResult<CameraT> |
Definition at line 99 of file intrinsics.cpp.
| template auto calib::optimize_intrinsics | ( | const std::vector< PlanarView > & | views, |
| const PinholeCamera< BrownConradyd > & | init_camera, | ||
| std::vector< Eigen::Isometry3d > | init_c_se3_t, | ||
| const IntrinsicsOptimOptions & | opts | ||
| ) | -> IntrinsicsOptimizationResult< PinholeCamera< BrownConradyd > > |
| template auto calib::optimize_intrinsics | ( | const std::vector< PlanarView > & | views, |
| const ScheimpflugCamera< PinholeCamera< BrownConradyd > > & | init_camera, | ||
| std::vector< Eigen::Isometry3d > | init_c_se3_t, | ||
| const IntrinsicsOptimOptions & | opts | ||
| ) | -> IntrinsicsOptimizationResult< ScheimpflugCamera< PinholeCamera< BrownConradyd > > > |
| IntrinsicsOptimizationResult< PinholeCamera< BrownConradyd > > calib::optimize_intrinsics_semidlt | ( | const std::vector< PlanarView > & | views, |
| const CameraMatrix & | initial_guess, | ||
| const IntrinsicsOptimOptions & | opts = {} |
||
| ) | -> IntrinsicsOptimizationResult<PinholeCamera<BrownConradyd>> |
Definition at line 155 of file intrinsicssemidlt.cpp.
| auto calib::optimize_planar_pose | ( | const PlanarView & | view, |
| const CameraMatrix & | intrinsics, | ||
| const Eigen::Isometry3d & | init_pose, | ||
| const PlanarPoseOptions & | opts = {} |
||
| ) | -> PlanarPoseResult |
Definition at line 84 of file planarpose.cpp.
|
static |
Definition at line 95 of file homography.cpp.
|
static |
Definition at line 79 of file observationutils.h.
|
inline |
Definition at line 93 of file linescan.h.
| std::vector< Eigen::Vector3d > calib::points_from_view | ( | LineScanView | view, |
| const CameraT & | camera | ||
| ) |
Definition at line 64 of file linescan.h.
|
inline |
Definition at line 43 of file observationutils.h.
| auto calib::pose_from_homography | ( | const CameraMatrix & | kmtx, |
| const Eigen::Matrix3d & | hmtx | ||
| ) | -> PoseFromHResult |
Estimates the camera pose from a homography matrix.
Given the camera intrinsic matrix and a homography matrix, this function computes the rotation and translation (pose) of the camera relative to a planar scene.
| kmtx | The camera intrinsic matrix (CameraMatrix). |
| hmtx | The 3x3 homography matrix (Eigen::Matrix3d) relating the world and image plane. |
Definition at line 12 of file posefromhomography.cpp.
| Eigen::Isometry3d calib::pose_from_homography_normalized | ( | const Eigen::Matrix3d & | hmtx | ) | -> Eigen::Isometry3d |
Definition at line 17 of file planarpose_linear.cpp.
|
inline |
Definition at line 65 of file se3_utils.h.
|
static |
Definition at line 86 of file intrinsicsdlt.cpp.
| std::pair< Eigen::Matrix< T, 3, 3 >, Eigen::Matrix< T, 3, 1 > > calib::product | ( | const Eigen::Matrix< T, 3, 3 > & | rotation1, |
| const Eigen::Matrix< T, 3, 1 > & | translation1, | ||
| const Eigen::Matrix< T, 3, 3 > & | rotation2, | ||
| const Eigen::Matrix< T, 3, 1 > & | translation2 | ||
| ) |
Definition at line 35 of file observationutils.h.
|
inline |
Definition at line 10 of file se3_utils.h.
|
static |
Definition at line 21 of file observationutils.h.
| auto calib::ransac | ( | const std::vector< typename Estimator::Datum > & | data, |
| const RansacOptions & | opts = {} |
||
| ) | -> RansacResult<typename Estimator::Model> |
|
inline |
Definition at line 56 of file observationutils.h.
|
inline |
Definition at line 58 of file se3_utils.h.
|
inline |
Definition at line 64 of file intrinsics_utils.h.
|
static |
Definition at line 110 of file extrinsics.cpp.
|
static |
Definition at line 87 of file extrinsics.cpp.
|
inline |
Definition at line 21 of file se3_utils.h.
|
static |
Definition at line 77 of file intrinsicssemidlt.cpp.
|
static |
Definition at line 195 of file intrinsicsdlt.cpp.
|
inline |
Definition at line 53 of file se3_utils.h.
|
inline |
Definition at line 27 of file ceresutils.h.
|
static |
Definition at line 21 of file intrinsicsdlt.cpp.
|
static |
Definition at line 18 of file homography.cpp.
|
static |
Definition at line 80 of file homographyestimator.cpp.
|
inline |
Definition at line 416 of file distortion.h.
|
inline |
Definition at line 407 of file distortion.h.
|
inline |
| void calib::to_json | ( | nlohmann::json & | j, |
| const T & | value | ||
| ) |
| Observation< T > calib::to_observation | ( | const PlanarObservation & | obs, |
| const T * | pose6 | ||
| ) |
Definition at line 98 of file observationutils.h.
| auto calib::undistort | ( | Eigen::Matrix< T, 2, 1 > | norm_xy, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | coeffs | ||
| ) | -> Eigen::Matrix<T, 2, 1> |
Definition at line 121 of file distortion.h.
|
static |
| void calib::validate_input | ( | const std::vector< BundleObservation > & | observations, |
| const std::vector< CameraT > & | initial_cameras | ||
| ) |
Definition at line 136 of file bundle.cpp.
|
static |
Definition at line 163 of file extrinsics.cpp.
|
static |
Definition at line 92 of file intrinsics.cpp.
|
inline |
Definition at line 39 of file linescan.h.
|
static |
| auto calib::zhang_intrinsics_from_hs | ( | const std::vector< HomographyResult > & | hs | ) | -> std::optional<CameraMatrix> |
|
constexpr |
Improved linear initialization with distortion estimation.
Definition at line 66 of file intrinsics.h.
|
static |
Definition at line 21 of file ceresutils.h.