8#ifndef META_OCEAN_GEOMETRY_FISHEYEEPIPOLARGEOMETRY_H
9#define META_OCEAN_GEOMETRY_FISHEYEEPIPOLARGEOMETRY_H
This class implements the abstract base class for all AnyCamera objects.
Definition AnyCamera.h:130
This class implements fisheye epipolar geometry functionality.
Definition FisheyeEpipolarGeometry.h:29
HomogenousMatrix4 camera0_T_camera1_
The transformation from camera 1 to camera 0.
Definition FisheyeEpipolarGeometry.h:148
SharedAnyCamera pinholeCamera0_
The first pinhole camera.
Definition FisheyeEpipolarGeometry.h:142
SquareMatrix3 camera1_E_camera0_
The essential matrix from camera 0 to camera 1.
Definition FisheyeEpipolarGeometry.h:151
bool isOnEpipolarLine(const CameraIdentifier sourceCameraIdentifier, const Vector2 &sourcePointFisheye, const Vector2 &targetPointFisheye, const Scalar maxDistance=Scalar(2)) const
Determines whether a target point lies on the epipolar line corresponding to a source point.
SquareMatrix3 camera1_F_camera0_
The fundamental matrix from camera 0 to camera 1.
Definition FisheyeEpipolarGeometry.h:154
bool epipolarLine(const CameraIdentifier sourceCameraIdentifier, const Vector2 &sourcePointFisheye, Line2 &epipolarLinePinhole) const
Computes the epipolar line in the target camera corresponding to a point in the source camera (in pin...
bool isValid() const
Returns whether this epipolar geometry object is valid.
CameraIdentifier
Definition of camera identifiers.
Definition FisheyeEpipolarGeometry.h:36
SharedAnyCamera fisheyeCamera0_
The first fisheye camera.
Definition FisheyeEpipolarGeometry.h:136
bool updateCameras(const SharedAnyCamera &camera0, const SharedAnyCamera &camera1, const HomogenousMatrix4 &camera0_T_camera1)
Updates the cameras and transformation of this epipolar geometry object.
Vector2 reprojectPoint(const AnyCamera &sourceCamera, const AnyCamera &targetCamera, const Vector2 &sourcePoint) const
Reprojects a point from one camera to another.
Scalar squareDistanceToEpipolarLine(const CameraIdentifier sourceCameraIdentifier, const Vector2 &sourcePointFisheye, const Vector2 &targetPointFisheye) const
Computes the squared distance from a target point to the epipolar line corresponding to a source poin...
SharedAnyCamera fisheyeCamera1_
The second fisheye camera.
Definition FisheyeEpipolarGeometry.h:139
FisheyeEpipolarGeometry()=default
Default constructor creating an invalid epipolar geometry object.
FisheyeEpipolarGeometry(const SharedAnyCamera &camera0, const SharedAnyCamera &camera1, const HomogenousMatrix4 &camera0_T_camera1)
Creates a new fisheye epipolar geometry object.
std::vector< Vector2 > EpipolarLine
Definition of an epipolar line as a vector of 2D points.
Definition FisheyeEpipolarGeometry.h:46
bool epipolarLine(const Vector2 &sourcePointFisheye, Vectors2 &fisheyeEpipolarLineSegments, const CameraIdentifier sourceCameraIdentifier=CI_CAMERA0, const Scalar lineStep=Scalar(70), const size_t maxNumberLineSegments=100u) const
Computes the epipolar line in the target camera corresponding to a point in the source camera.
SharedAnyCamera pinholeCamera1_
The second pinhole camera.
Definition FisheyeEpipolarGeometry.h:145
std::vector< EpipolarLine > EpipolarLines
Definition of a vector holding epipolar lines.
Definition FisheyeEpipolarGeometry.h:51
This class implements an infinite line in 2D space.
Definition Line2.h:83
float Scalar
Definition of a scalar type.
Definition Math.h:129
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
The namespace covering the entire Ocean framework.
Definition Accessor.h:15