8#ifndef META_OCEAN_CV_CALIBRATION_CAMERA_CALIBRATOR_BOARD_OBSERVATION_H
9#define META_OCEAN_CV_CALIBRATION_CAMERA_CALIBRATOR_BOARD_OBSERVATION_H
31class CalibrationBoardObservation;
51 static constexpr size_t invalidImageId_ =
size_t(-1);
83 inline size_t imageId()
const;
108 inline const Vectors3& objectPoints()
const;
114 inline const Vectors2& imagePoints()
const;
148 inline bool isValid()
const;
154 static constexpr size_t invalidImageId();
177 size_t imageId_ = invalidImageId_;
195 mutable float coverage_ = -1.0f;
202 CalibrationBoardObservation(observation.imageId(), std::move(camera), board_T_camera, std::move(observation.objectPointIds_), std::move(observation.objectPoints_), std::move(observation.imagePoints_))
241 ocean_assert(
false &&
"This should never happen!");
std::vector< ObjectPointId > ObjectPointIds
Definition of a vector holding object point ids.
Definition CalibrationBoard.h:219
This class implements an observation of a calibration board.
Definition CalibrationBoardObservation.h:45
bool isValid() const
Returns whether this observation is valid.
Definition CalibrationBoardObservation.h:256
HomogenousMatrix4 board_T_camera_
The camera pose under which the calibration board has been observed, with default camera pointing tow...
Definition CalibrationBoardObservation.h:183
CalibrationBoardObservation(const size_t imageId, SharedAnyCamera camera, const HomogenousMatrix4 &board_T_camera, CalibrationBoard::ObjectPointIds &&objectPointIds, Vectors3 &&objectPoints, Vectors2 &&imagePoints)
Creates a new calibration board observation.
const HomogenousMatrix4 & board_T_camera() const
Returns the camera pose under which the calibration board has been observed.
Definition CalibrationBoardObservation.h:217
const SharedAnyCamera & camera() const
Returns the camera profile which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:212
Geometry::SpatialDistribution::OccupancyArray occupancyArray_
The occupancy array of this observation which is used to determine the image coverage.
Definition CalibrationBoardObservation.h:198
float coverage() const
Returns the image coverage of this observation.
static constexpr size_t invalidImageId_
Definition of an invalid image id.
Definition CalibrationBoardObservation.h:51
const Geometry::SpatialDistribution::OccupancyArray & occupancyArray() const
Returns the occupancy array of this observation.
Definition CalibrationBoardObservation.h:237
Vectors2 imagePoints_
The 2D image points which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:192
static bool compareObservations(const CalibrationBoardObservation &observationA, const CalibrationBoardObservation &observationB)
Compares the coverage of two observations.
Definition CalibrationBoardObservation.h:266
const Vectors3 & objectPoints() const
Returns the 3D object points which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:227
SharedAnyCamera camera_
The camera profile which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:180
size_t imageId() const
Returns the id of the image in which the calibration board has been observed.
Definition CalibrationBoardObservation.h:207
const CalibrationBoard::ObjectPointIds & objectPointIds() const
Returns the ids of all object points which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:222
Vectors3 objectPoints_
The 3D object points which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:189
CalibrationBoardObservation()=default
Default creator for an invalid calibration board observation.
CalibrationBoard::ObjectPointIds objectPointIds_
The ids of all object points which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:186
void updateCamera(const SharedAnyCamera &camera, const HomogenousMatrix4 &board_T_camera)
Updates the camera profile and the camera pose of this observation.
Definition CalibrationBoardObservation.h:247
float determineCoverage(const unsigned int pixelsPerBin) const
Determines the image coverage of this observation.
size_t imageId_
The id of the image in which the calibration board has been observed.
Definition CalibrationBoardObservation.h:177
static constexpr size_t invalidImageId()
Returns an invalid image id.
Definition CalibrationBoardObservation.h:261
const Vectors2 & imagePoints() const
Returns the 2D image points which were used to observe the calibration board.
Definition CalibrationBoardObservation.h:232
void addCorrespondences(const CalibrationBoard::ObjectPointIds &objectPointIds, const Vectors3 &objectPoints, const Vectors2 &imagePoints)
Adds additional 2D/3D correspondences to this observation.
This class implements an occupancy array.
Definition SpatialDistribution.h:370
bool isValid() const
Returns whether this matrix is a valid homogeneous transformation.
Definition HomogenousMatrix4.h:1806
std::vector< CalibrationBoardObservation > CalibrationBoardObservations
Definition of a vector holding CalibrationBoardObservation objects.
Definition CalibrationBoardObservation.h:37
std::shared_ptr< AnyCamera > SharedAnyCamera
Definition of a shared pointer holding an AnyCamera object with Scalar precision.
Definition AnyCamera.h:60
std::vector< Vector2 > Vectors2
Definition of a vector holding Vector2 objects.
Definition Vector2.h:64
std::vector< Vector3 > Vectors3
Definition of a vector holding Vector3 objects.
Definition Vector3.h:65
The namespace covering the entire Ocean framework.
Definition Accessor.h:15