Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
intrinsics.h
Go to the documentation of this file.
1
3#pragma once
4
5#include <Eigen/Geometry>
6#include <optional>
7#include <vector>
8
10#include "calib/estimation/common/ransac.h" // RansacOptions
11#include "calib/estimation/linear/homography.h" // HomographyResult
12#include "calib/estimation/linear/planarpose.h" // PlanarObservation/View
16
17namespace calib {
18
27 std::optional<CalibrationBounds> bounds = std::nullopt;
28 std::optional<RansacOptions> homography_ransac = std::nullopt;
29 bool use_skew = false;
30};
31
32struct ViewEstimateData final {
33 size_t view_index = 0;
34 Eigen::Isometry3d c_se3_t = Eigen::Isometry3d::Identity();
35 // Diagnostics
37 double forward_rms_px = 0.0;
38};
39
48 bool success{false};
49
51 std::vector<double> dist = {0, 0, 0, 0};
52 std::vector<ViewEstimateData> views;
53 std::string log;
54};
55
57auto estimate_intrinsics(const std::vector<PlanarView>& views,
58 const IntrinsicsEstimOptions& opts = {}) -> IntrinsicsEstimateResult;
59
61auto estimate_intrinsics_linear(const std::vector<Observation<double>>& observations,
62 std::optional<CalibrationBounds> bounds = std::nullopt,
63 bool use_skew = false) -> std::optional<CameraMatrix>;
64
66constexpr int k_default_max_iterations = 5;
67auto estimate_intrinsics_linear_iterative(const std::vector<Observation<double>>& observations,
68 int num_radial,
69 int max_iterations = k_default_max_iterations,
70 bool use_skew = false)
71 -> std::optional<PinholeCamera<BrownConradyd>>;
72
76
77} // namespace calib
Lens distortion models and correction algorithms.
Linear multi-camera extrinsics initialisation (DLT)
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(const std::vector< PlanarView > &views, const IntrinsicsEstimOptions &opts={}) -> IntrinsicsEstimateResult
Estimate camera intrinsics from planar views using a linear method.
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 > >
constexpr int k_default_max_iterations
Improved linear initialization with distortion estimation.
Definition intrinsics.h:66
Pinhole camera model with intrinsics and distortion.
Options for linear intrinsic estimation from planar views.
Definition intrinsics.h:26
std::optional< RansacOptions > homography_ransac
Optional RANSAC opts.
Definition intrinsics.h:28
std::optional< CalibrationBounds > bounds
Optional parameter bounds.
Definition intrinsics.h:27
bool use_skew
Estimate skew parameter.
Definition intrinsics.h:29
Result of linear intrinsic estimation.
Definition intrinsics.h:47
std::vector< ViewEstimateData > views
Per-view estimation data.
Definition intrinsics.h:52
std::vector< double > dist
Distortion coefficients (k1, k2, p1, p2)
Definition intrinsics.h:51
CameraMatrix kmtx
Estimated intrinsic matrix.
Definition intrinsics.h:50
Observation structure for distortion parameter estimation.
Definition distortion.h:69
HomographyResult homography
Definition intrinsics.h:36
Eigen::Isometry3d c_se3_t
Definition intrinsics.h:34