11#include <gtsam/geometry/EssentialMatrix.h>
13#include <gtsam/geometry/Unit3.h>
88 Matrix3 matrix()
const;
96 void print(
const std::string& s =
"")
const;
100 bool equals(
const FundamentalMatrix& other,
double tol = 1e-9)
const;
105 inline constexpr static auto dimension = 7;
106 inline static size_t Dim() {
return dimension; }
107 inline size_t dim()
const {
return dimension; }
110 Vector localCoordinates(
const FundamentalMatrix& F)
const;
113 FundamentalMatrix retract(
const Vector& delta)
const;
117 FundamentalMatrix(
const Rot3& U,
double s,
const Rot3& V)
118 : U_(U), s_(s), V_(V) {}
121 void initialize(Matrix3 U,
double s, Matrix3 V);
149 : E_(), fa_(1.0), fb_(1.0), ca_(0.0, 0.0), cb_(0.0, 0.0) {}
160 double fa,
double fb,
const Point2& ca,
162 : E_(E), fa_(fa), fb_(fb), ca_(ca), cb_(cb) {}
166 Matrix3 matrix()
const;
174 void print(
const std::string& s =
"")
const;
177 bool equals(
const SimpleFundamentalMatrix& other,
double tol = 1e-9)
const;
182 inline constexpr static auto dimension = 7;
183 inline static size_t Dim() {
return dimension; }
184 inline size_t dim()
const {
return dimension; }
187 Vector localCoordinates(
const SimpleFundamentalMatrix& F)
const;
190 SimpleFundamentalMatrix retract(
const Vector& delta)
const;
201 const Matrix3& Fcb,
const Point2& pb);
Special class for optional Jacobian arguments.
3D rotation represented as a rotation matrix or quaternion
Global functions in a separate testing namespace.
Definition chartTesting.h:28
Vector2 Point2
As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point2 to Vector2...
Definition Point2.h:32
Point2 EpipolarTransfer(const Matrix3 &Fca, const Point2 &pa, const Matrix3 &Fcb, const Point2 &pb)
Transfer projections from cameras a and b to camera c.
Definition FundamentalMatrix.cpp:15
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition Group.h:37
Both ManifoldTraits and Testable.
Definition Manifold.h:156
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition OptionalJacobian.h:40
An essential matrix is like a Pose3, except with translation up to scale It is named after the 3*3 ma...
Definition EssentialMatrix.h:26
Represents a fundamental matrix in computer vision, which encodes the epipolar geometry between two v...
Definition FundamentalMatrix.h:29
Matrix3 matrix() const
Return the fundamental matrix representation.
Definition FundamentalMatrix.cpp:77
FundamentalMatrix()
Default constructor.
Definition FundamentalMatrix.h:37
FundamentalMatrix(const Matrix3 &Ka, const EssentialMatrix &E, const Matrix3 &Kb)
Construct from essential matrix and calibration matrices.
Definition FundamentalMatrix.h:69
FundamentalMatrix(const Matrix3 &Ka, const Pose3 &aPb, const Matrix3 &Kb)
Construct from calibration matrices Ka, Kb, and pose aPb.
Definition FundamentalMatrix.h:84
Class for representing a simple fundamental matrix.
Definition FundamentalMatrix.h:132
SimpleFundamentalMatrix(const EssentialMatrix &E, double fa, double fb, const Point2 &ca, const Point2 &cb)
Construct from essential matrix and focal lengths.
Definition FundamentalMatrix.h:159
SimpleFundamentalMatrix()
Default constructor.
Definition FundamentalMatrix.h:148
Represents a set of three fundamental matrices for transferring points between three cameras.
Definition FundamentalMatrix.h:206
Point2 transferToC(const Point2 &pa, const Point2 &pb)
Transfers a point from cameras a,b to camera c.
Definition FundamentalMatrix.h:220
Point2 transferToA(const Point2 &pb, const Point2 &pc)
Transfers a point from cameras b,c to camera a.
Definition FundamentalMatrix.h:210
Point2 transferToB(const Point2 &pa, const Point2 &pc)
Transfers a point from camera a,c to camera b.
Definition FundamentalMatrix.h:215
A 3D pose (R,t) : (Rot3,Point3).
Definition Pose3.h:42
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Definition Rot3.h:65