8#ifndef OCEAN_CV_DETECTOR_BULLSEYES_STEREOBULLSEYEDETECTOR_H
9#define OCEAN_CV_DETECTOR_BULLSEYES_STEREOBULLSEYEDETECTOR_H
140 constexpr static Scalar invalidMatchingCost();
This class implements the abstract base class for all AnyCamera objects.
Definition AnyCamera.h:130
Definition of a bullseye composed of a location and a radius.
Definition Bullseye.h:32
This class holds the most important parameters for the detector.
Definition MonoBullseyeDetector.h:46
This class holds the most important parameters for the stereo detector.
Definition StereoBullseyeDetector.h:65
bool setMaxDistanceToEpipolarLine(const Scalar distance)
Sets the maximum allowed distance from a point to the epipolar line.
Scalar maxDistanceToEpipolarLine() const
Returns the maximum allowed distance from a point to the epipolar line.
static Parameters defaultParameters()
Returns the default parameters for the stereo detector.
Parameters()=default
Creates a new parameter object with default parameters.
This class implements a stereo detector for bullseye patterns.
Definition StereoBullseyeDetector.h:42
static Scalar computeBullseyeMatchingCost(const Bullseye &bullseyeA, const Bullseye &bullseyeB, const EpipolarGeometry &epipolarGeometry, const Scalar maxSqrDistance, const Scalar cameraB_s_cameraA)
Computes the matching cost between two bullseyes from different stereo cameras.
std::pair< Bullseye, Bullseye > BullseyePair
Definition of a pair of bullseyes.
Definition StereoBullseyeDetector.h:48
static bool detectBullseyes(const SharedAnyCameras &cameras, const Frames &yFrames, const HomogenousMatrix4 &world_T_device, const HomogenousMatrices4 &device_T_cameras, BullseyePairs &bullseyePairs, Vectors3 &bullseyeCenters, const Parameters ¶meters=Parameters::defaultParameters(), Worker *worker=nullptr)
Detects bullseyes in a pair of stereo frames.
static bool computeBullseyeMatchingCostMatrix(const Bullseyes &bullseyesA, const Bullseyes &bullseyesB, const EpipolarGeometry &epipolarGeometry, const Scalar maxSqrDistanceToEpipolarLine, const Scalar cameraB_s_cameraA, Matrix &costMatrix)
Computes a cost matrix containing matching costs between all pairs of bullseyes from two cameras.
static constexpr Scalar invalidMatchingCost()
Returns an invalid (arbitrarily large) matching cost value used to indicate that two bullseyes cannot...
Definition StereoBullseyeDetector.h:204
std::vector< BullseyePair > BullseyePairs
Definition of a vector holding bullseye pairs.
Definition StereoBullseyeDetector.h:53
static bool triangulateBullseyes(const SharedAnyCameras &cameras, const HomogenousMatrix4 &world_T_device, const HomogenousMatrices4 &device_T_cameras, const EpipolarGeometry &epipolarGeometry, const BullseyePairs &candidates, BullseyePairs &bullseyePairs, Vectors3 &bullseyeCenters, Scalars &reprojectionErrorsA, Scalars &reprojectionErrorsB)
Triangulates matched bullseye pairs to compute their 3D positions.
static bool matchBullseyes(const SharedAnyCameras &cameras, const Frames &yFrames, const HomogenousMatrix4 &world_T_device, const HomogenousMatrices4 &device_T_cameras, const EpipolarGeometry &epipolarGeometry, const BullseyeGroup &bullseyeGroup, const Scalar maxDistanceToEpipolarLine, BullseyePairs &bullseyePairs)
Matches bullseyes detected in two stereo frames using epipolar geometry.
static bool triangulateBullseye(const AnyCamera &cameraA, const AnyCamera &cameraB, const HomogenousMatrix4 &world_T_cameraA, const HomogenousMatrix4 &world_T_cameraB, const EpipolarGeometry &epipolarGeometry, const Bullseye &bullseyeA, const Bullseye &bullseyeB, Vector3 &bullseyeCenter, Scalar &reprojectionErrorA, Scalar &reprojectionErrorB)
Triangulates a single matched bullseye pair to compute its 3D position in world coordinates.
std::array< Bullseyes, 2 > BullseyeGroup
Definition of a pair of vectors of bullseyes, one from each camera.
Definition StereoBullseyeDetector.h:58
This class implements fisheye epipolar geometry functionality.
Definition FisheyeEpipolarGeometry.h:29
This class implements a worker able to distribute function calls over different threads.
Definition Worker.h:33
std::vector< Frame > Frames
Definition of a vector holding padding frames.
Definition Frame.h:1771
float Scalar
Definition of a scalar type.
Definition Math.h:129
std::vector< HomogenousMatrix4 > HomogenousMatrices4
Definition of a vector holding HomogenousMatrix4 objects.
Definition HomogenousMatrix4.h:73
std::vector< Scalar > Scalars
Definition of a vector holding Scalar objects.
Definition Math.h:145
SharedAnyCamerasT< Scalar > SharedAnyCameras
Definition of a vector holding AnyCamera objects.
Definition AnyCamera.h:90
std::vector< Vector3 > Vectors3
Definition of a vector holding Vector3 objects.
Definition Vector3.h:65
std::vector< Bullseye > Bullseyes
Definition of a vector holding bullseyes.
Definition Bullseye.h:103
The namespace covering the entire Ocean framework.
Definition Accessor.h:15