Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
intrinsicsdlt.cpp File Reference
#include "calib/estimation/linear/intrinsics.h"
#include <algorithm>
#include <cmath>
#include <iostream>
#include <limits>
#include <numeric>
#include <random>
#include <span>
#include <utility>
#include "calib/estimation/common/intrinsics_utils.h"
#include "calib/estimation/common/ransac.h"
#include "calib/estimation/linear/posefromhomography.h"
#include "calib/estimation/linear/zhang.h"
#include "detail/homographyestimator.h"
Include dependency graph for intrinsicsdlt.cpp:

Go to the source code of this file.

Classes

struct  calib::LinearSystem
 

Namespaces

namespace  calib
 Linear multi-camera extrinsics initialisation (DLT)
 

Functions

static auto calib::symmetric_rms_px (const Eigen::Matrix3d &hmtx, const PlanarView &view, std::span< const int > inliers) -> double
 
static auto calib::compute_planar_homographies (const std::vector< PlanarView > &views, const std::optional< RansacOptions > &ransac_opts) -> std::vector< HomographyResult >
 
static auto calib::process_planar_view (const CameraMatrix &kmtx, const HomographyResult &hres) -> ViewEstimateData
 
auto calib::estimate_intrinsics (const std::vector< PlanarView > &views, const IntrinsicsEstimOptions &opts={}) -> IntrinsicsEstimateResult
 Estimate camera intrinsics from planar views using a linear method.
 
static auto calib::build_u_system (const std::vector< Observation< double > > &obs, bool use_skew) -> LinearSystem
 
static auto calib::build_v_system (const std::vector< Observation< double > > &obs) -> LinearSystem
 
static auto calib::solve_linear_system (const LinearSystem &system) -> std::optional< Eigen::VectorXd >
 
static auto calib::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 calib::correct_observations_for_distortion (const std::vector< Observation< double > > &obs, const CameraMatrix &kmtx, const Eigen::VectorXd &distortion) -> std::vector< Observation< double > >
 
static auto calib::compute_camera_matrix_difference (const CameraMatrix &k1, const CameraMatrix &k2) -> double
 
static auto calib::estimate_distortion_for_camera (const std::vector< Observation< double > > &obs, const CameraMatrix &kmtx, int num_radial) -> std::optional< Eigen::VectorXd >
 
auto 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.
 
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 > >