8#ifndef META_OCEAN_CV_CALIBRATION_CALIBRATION_BOARD_DETECTOR_H
9#define META_OCEAN_CV_CALIBRATION_CALIBRATION_BOARD_DETECTOR_H
This class implements the abstract base class for all AnyCamera objects.
Definition AnyCamera.h:130
This class implements the detector for the calibration board.
Definition CalibrationBoardDetector.h:38
std::vector< uint8_t > UsedPoints
Definition of a vector holding a binary mask indicating whether a marker point has been used already.
Definition CalibrationBoardDetector.h:49
static bool determineCameraPoseForMarker(const AnyCamera &camera, const MarkerCandidate &markerCandidate, const Points &points, HomogenousMatrix4 &markerCandidate_T_camera, const Scalar maximalProjectionError)
Determines the camera pose for a marker candidate.
static bool determineRemainingMarkerPointIndices(const AnyCamera &camera, const HomogenousMatrix4 &markerCandidate_T_camera, MarkerCandidate &markerCandidate, const Points &points, const Geometry::SpatialDistribution::DistributionArray &pointsDistributionArray, const Scalar maximalProjectionError)
Determines the remaining unknown point indices of a marker candidate.
std::deque< Index32 > ContinuousLineIndices
Definition of a double-ended queue holding indices of continuous lines of marker points.
Definition CalibrationBoardDetector.h:44
static void determineMarkerCandidateNeighborhood(MarkerCandidates &markerCandidates, const Points &points, const Scalar maxDistancePercentage)
Determines the neighborhood relationship in marker candidates.
static bool determineClosedRectangle(ContinuousLineIndices &lineIndices, const Points &points, const UsedPoints &usedPoints, const Geometry::SpatialDistribution::DistributionArray &pointsDistributionArray, const Scalar maxDistancePercentage)
Determines a closed rectangle of marker points (the 16 marker points of the border of a marker).
static bool determineInitialCameraFieldOfView(const unsigned int width, const unsigned height, const Points &points, const MarkerCandidates &markerCandidates, const AnyCameraType anyCameraType, Scalar &fovX, const Scalar minFovX=Numeric::deg2rad(20), const Scalar maxFovX=Numeric::deg2rad(175), const size_t steps=20)
Determines the initial camera field-of-view based on several marker candidates with valid border indi...
static bool determineContinuousLine(const size_t pointIndexA, const size_t pointIndexB, const Points &points, const UsedPoints &usedPoints, const Geometry::SpatialDistribution::DistributionArray &pointsDistributionArray, ContinuousLineIndices &lineIndices, const Scalar maxDistancePercentage)
Determines a continuous line of marker points with same sign.
static bool determineStartMarkerCandidates(const unsigned int width, const unsigned int height, const MarkerCandidates &markerCandidates, const Points &points, Indices32 &bestMarkerCandidateIndices)
Determines the marker candidates most suitable to start the detection of the calibration board.
static bool determineMarkerCandidates(const Points &points, const Geometry::SpatialDistribution::DistributionArray &pointsDistributionArray, const Scalar maximalDistance, const Scalar maxDistancePercentage, MarkerCandidates &markerCandidates)
Determines the marker candidates based on marker points detected in an image.
static bool detectCalibrationBoard(const AnyCamera &camera, const Frame &yFrame, const MetricCalibrationBoard &calibrationBoard, CalibrationBoardObservation &observation, const Scalar maximalProjectionError, Worker *worker=nullptr)
Detects a calibration board in an image.
This class implements an observation of a calibration board.
Definition CalibrationBoardObservation.h:45
This class implements a candidate of a marker.
Definition MarkerCandidate.h:48
This class extends the calibration board with metric information.
Definition MetricCalibrationBoard.h:39
This class implements Ocean's image class.
Definition Frame.h:1808
This class implements a distribution array.
Definition SpatialDistribution.h:228
This class implements a worker able to distribute function calls over different threads.
Definition Worker.h:33
std::vector< Index32 > Indices32
Definition of a vector holding 32 bit index values.
Definition Base.h:96
std::vector< Point > Points
Definition of a vector holding points.
Definition cv/calibration/Point.h:31
std::vector< MarkerCandidate > MarkerCandidates
Definition of a vector holding marker candidates.
Definition MarkerCandidate.h:33
float Scalar
Definition of a scalar type.
Definition Math.h:129
AnyCameraType
Definition of individual camera types.
Definition AnyCamera.h:111
The namespace covering the entire Ocean framework.
Definition Accessor.h:15