87 const std::vector<SfmTrack>& trackList()
const {
return tracks; }
95 NonlinearFactorGraph generalSfmFactors(
96 const SharedNoiseModel& model = noiseModel::Isotropic::Sigma(2,
109 NonlinearFactorGraph sfmFactorGraph(
110 const SharedNoiseModel& model = noiseModel::Isotropic::Sigma(2, 1.0),
111 std::optional<size_t> fixedCamera = 0,
112 std::optional<size_t> fixedPoint = 0)
const;
119 void print(
const std::string& s =
"")
const;
122 bool equals(
const SfmData& sfmData,
double tol = 1e-9)
const;
128#if GTSAM_ENABLE_BOOST_SERIALIZATION
129 friend class boost::serialization::access;
131 template <
class Archive>
132 void serialize(Archive& ar,
const unsigned int ) {
133 ar& BOOST_SERIALIZATION_NVP(cameras);
134 ar& BOOST_SERIALIZATION_NVP(tracks);
161GTSAM_EXPORT
bool writeBAL(
const std::string& filename,
const SfmData& data);
Base class for all pinhole cameras.
Calibration used by Bundler.
A non-templated config holding any types of Manifold-group elements.
Factor Graph consisting of non-linear factors.
A simple data structure for a track in Structure from Motion.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
bool writeBAL(const std::string &filename, const SfmData &data)
This function writes a "Bundle Adjustment in the Large" (BAL) file from a SfmData structure.
Definition SfmData.cpp:303
bool writeBALfromValues(const std::string &filename, const SfmData &data, const Values &values)
This function writes a "Bundle Adjustment in the Large" (BAL) file from a SfmData structure and a val...
Definition SfmData.cpp:384
SfmData readBal(const std::string &filename)
This function parses a "Bundle Adjustment in the Large" (BAL) file and returns the data as a SfmData ...
Definition SfmData.cpp:379
Pose3 gtsam2openGL(const Rot3 &R, double tx, double ty, double tz)
This function converts a GTSAM camera pose to an openGL camera pose.
Definition SfmData.cpp:89
Values initialCamerasAndPointsEstimate(const SfmData &db)
This function creates initial values for cameras and points from db.
Definition SfmData.cpp:484
PinholeCamera< Cal3Bundler > SfmCamera
Define the structure for the camera poses.
Definition SfmData.h:33
Values initialCamerasEstimate(const SfmData &db)
This function creates initial values for cameras from db.
Definition SfmData.cpp:476
Pose3 openGL2gtsam(const Rot3 &R, double tx, double ty, double tz)
This function converts an openGL camera pose to an GTSAM camera pose.
Definition SfmData.cpp:80
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition Group.h:37
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:152
A pinhole camera class that has a Pose3 and a Calibration.
Definition PinholeCamera.h:34
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
A non-templated config holding any types of Manifold-group elements.
Definition Values.h:65
SfmData stores a bunch of SfmTracks.
Definition SfmData.h:39
static SfmData FromBundlerFile(const std::string &filename)
Parses a bundler output file and return result as SfmData instance.
Definition SfmData.cpp:103
const std::vector< SfmCamera > & cameraList() const
Getters.
Definition SfmData.h:86
void addCamera(const SfmCamera &cam)
Add a camera to SfmData.
Definition SfmData.h:71
size_t numberCameras() const
The number of cameras.
Definition SfmData.h:77
size_t numberTracks() const
The number of reconstructed 3D points.
Definition SfmData.h:74
const SfmTrack & track(size_t idx) const
The track formed by series of landmark measurements.
Definition SfmData.h:80
void addTrack(const SfmTrack &t)
Add a track to SfmData.
Definition SfmData.h:68
const SfmCamera & camera(size_t idx) const
The camera pose at frame index idx.
Definition SfmData.h:83
std::vector< SfmCamera > cameras
Set of cameras.
Definition SfmData.h:40
static SfmData FromBalFile(const std::string &filename)
Parse a "Bundle Adjustment in the Large" (BAL) file and return result as SfmData instance.
Definition SfmData.cpp:220
std::vector< SfmTrack > tracks
Sparse set of points.
Definition SfmData.h:42
Definition SfmTrack.h:124