Concept defining the interface requirements for camera model implementations.
More...
#include <cameramodel.h>
template<typename Cam>
Eigen::Matrix<typename Cam::Scalar, 2, 1> p2) {
typename Cam::Scalar;
{
cam.template project<typename Cam::Scalar>(p3)
} -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
{
cam.template unproject<typename Cam::Scalar>(p2)
} -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
{
cam.template apply_intrinsics<typename Cam::Scalar>(p2)
} -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
{
cam.template remove_intrinsics<typename Cam::Scalar>(p2)
} -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
}
Concept defining the interface requirements for camera model implementations.
std::vector< Eigen::Isometry3d > cam
Concept defining the interface requirements for camera model implementations.
A camera model must provide methods for projecting 3D points to 2D image coordinates and unprojecting 2D points to normalized camera coordinates. It must also support applying and removing intrinsic camera parameters.
- Template Parameters
-
| Cam | The camera model type to be validated |
Requirements:
- Must define a Scalar type (typically float or double)
- Must provide templated project() method: 3D point → 2D image coordinates
- Must provide templated unproject() method: 2D image coordinates → 2D normalized coordinates
- Must provide templated apply_intrinsics() method: normalized coordinates → image coordinates
- Must provide templated remove_intrinsics() method: image coordinates → normalized coordinates
- See also
- CameraMatrix for basic pinhole camera implementation
-
distortion_model concept for distortion handling requirements
Definition at line 30 of file cameramodel.h.