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#pragma once
2
3#include <array>
4#include <filesystem>
5#include <nlohmann/json.hpp>
6#include <ostream>
7#include <string>
8#include <string_view>
9#include <utility>
10#include <vector>
11
18
19namespace calib::pipeline {
20
22using calib::to_json;
23
30
31struct CameraConfig final {
32 std::string camera_id;
33 std::string model = "pinhole_brown_conrady";
34 std::optional<std::array<int, 2>> image_size;
35};
36
37// TODO: make it configurable
38[[nodiscard]] auto bounds_from_image_size(const std::array<int, 2>& image_size)
40
42 std::string algorithm = "planar";
44 std::vector<CameraConfig> cameras;
45};
46
47struct ActiveView final {
48 std::string source_image;
49 std::size_t corner_count = 0;
50};
51
54 std::vector<std::size_t> linear_view_indices;
56 std::vector<ActiveView> active_views;
57 std::size_t total_input_views = 0;
58 std::size_t accepted_views = 0;
59 std::size_t used_views = 0;
60 std::size_t total_points_used = 0;
61 std::size_t min_corner_threshold = 0;
62 std::size_t invalid_k_warnings = 0;
63 std::size_t pose_warnings = 0;
64};
65
67 public:
68 [[nodiscard]] auto calibrate(const IntrinsicCalibrationConfig& cfg, const CameraConfig& cam_cfg,
69 const PlanarDetections& detections) const
71};
72
73[[nodiscard]] auto collect_planar_views(const PlanarDetections& detections,
75 std::vector<ActiveView>& views) -> std::vector<PlanarView>;
76
77[[nodiscard]] auto load_calibration_config(const std::filesystem::path& path)
78 -> std::optional<IntrinsicCalibrationConfig>;
79
80void print_calibration_summary(std::ostream& out, const CameraConfig& cam_cfg,
81 const IntrinsicCalibrationOutputs& outputs);
82
87
88} // namespace calib::pipeline
auto calibrate(const IntrinsicCalibrationConfig &cfg, const CameraConfig &cam_cfg, const PlanarDetections &detections) const -> IntrinsicCalibrationOutputs
PlanarDetections detections
Definition loaders.cpp:15
auto collect_planar_views(const PlanarDetections &detections, const IntrinsicCalibrationOptions &opts, std::vector< ActiveView > &views) -> std::vector< PlanarView >
auto load_calibration_config(const std::filesystem::path &path) -> std::optional< IntrinsicCalibrationConfig >
auto bounds_from_image_size(const std::array< int, 2 > &image_size) -> CalibrationBounds
void print_calibration_summary(std::ostream &out, const CameraConfig &cam_cfg, const IntrinsicCalibrationOutputs &outputs)
void from_json(const nlohmann::json &j, T &value)
Definition json.h:89
void to_json(nlohmann::json &j, const T &value)
Definition json.h:49
Pinhole camera model with intrinsics and distortion.
Options for linear intrinsic estimation from planar views.
Definition intrinsics.h:26
std::optional< std::array< int, 2 > > image_size
Definition intrinsics.h:34
std::vector< CameraConfig > cameras
Definition intrinsics.h:44
IntrinsicCalibrationOptions options
Definition intrinsics.h:43
IntrinsicsOptimizationResult< PinholeCamera< BrownConradyd > > refine_result
Definition intrinsics.h:55
std::vector< std::size_t > linear_view_indices
Definition intrinsics.h:54
std::vector< ActiveView > active_views
Definition intrinsics.h:56