Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
homographyestimator.h
Go to the documentation of this file.
1#pragma once
2
3// std
4#include <optional>
5#include <span>
6#include <vector>
7
8// eigen
9#include <Eigen/Core>
10#include <Eigen/Dense>
11
12#include "calib/estimation/linear/planarpose.h" // for PlanarObservation
13
14namespace calib {
15
16struct HomographyEstimator final {
18 using Model = Eigen::Matrix3d;
19 static constexpr size_t k_min_samples = 4;
20
21 // --- Estimator API ---
22 [[nodiscard]]
23 static auto fit(const std::vector<Datum>& data, std::span<const int> sample)
24 -> std::optional<Model>;
25
26 [[nodiscard]]
27 static auto residual(const Model& hmtx, const Datum& observation) -> double;
28
29 // Optional: better final model on all inliers
30 [[nodiscard]]
31 static auto refit(const std::vector<Datum>& data, std::span<const int> inliers)
32 -> std::optional<Model>;
33
34 // Optional: reject degenerate minimal sets (near-collinear points)
35 [[nodiscard]]
36 static auto is_degenerate(const std::vector<Datum>& data, std::span<const int> sample) -> bool;
37};
38
39} // namespace calib
Linear multi-camera extrinsics initialisation (DLT)
static auto is_degenerate(const std::vector< Datum > &data, std::span< const int > sample) -> bool
static auto fit(const std::vector< Datum > &data, std::span< const int > sample) -> std::optional< Model >
static auto residual(const Model &hmtx, const Datum &observation) -> double
static constexpr size_t k_min_samples
static auto refit(const std::vector< Datum > &data, std::span< const int > inliers) -> std::optional< Model >