Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
cameramodel.h
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Core>
4#include <concepts>
5
7
8namespace calib {
9
29template <typename Cam>
30concept camera_model = requires(const Cam& cam, Eigen::Matrix<typename Cam::Scalar, 3, 1> p3,
31 Eigen::Matrix<typename Cam::Scalar, 2, 1> p2) {
32 typename Cam::Scalar;
33 {
34 cam.template project<typename Cam::Scalar>(p3)
35 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
36 {
37 cam.template unproject<typename Cam::Scalar>(p2)
38 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
39 {
40 cam.template apply_intrinsics<typename Cam::Scalar>(p2)
41 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
42 {
43 cam.template remove_intrinsics<typename Cam::Scalar>(p2)
44 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
45};
46
63template <typename CamT>
64struct CameraTraits; // primary template
65
66} // namespace calib
Concept defining the interface requirements for camera model implementations.
Definition cameramodel.h:30
std::vector< Eigen::Isometry3d > cam
Linear multi-camera extrinsics initialisation (DLT)
Type traits template for camera model implementations.
Definition cameramodel.h:64