34 double k1_ = 0.0f, k2_ = 0.0f;
42 enum { dimension = 3 };
45 using shared_ptr = std::shared_ptr<Cal3Bundler>;
62 Cal3Bundler(
double f,
double k1,
double k2,
double u0 = 0,
double v0 = 0,
64 :
Cal3(f, f, 0, u0, v0), k1_(k1), k2_(k2), tol_(tol) {}
73 GTSAM_EXPORT
friend std::ostream& operator<<(std::ostream& os,
77 void print(
const std::string& s =
"")
const override;
87 inline double k1()
const {
return k1_; }
90 inline double k2()
const {
return k2_; }
93 inline double px()
const {
return u0_; }
96 inline double py()
const {
return v0_; }
98 Matrix3 K()
const override;
101 Vector3 vector()
const;
126 Matrix2 D2d_intrinsic(
const Point2& p)
const;
129 Matrix23 D2d_calibration(
const Point2& p)
const;
132 Matrix25 D2d_intrinsic_calibration(
const Point2& p)
const;
139 size_t dim()
const override {
return Dim(); }
142 inline static size_t Dim() {
return dimension; }
146 return Cal3Bundler(fx_ + d(0), k1_ + d(1), k2_ + d(2), u0_, v0_);
151 return T2.vector() - vector();
159 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 161 friend class boost::serialization::access;
162 template <
class Archive>
163 void serialize(Archive& ar,
const unsigned int ) {
164 ar& boost::serialization::make_nvp(
165 "Cal3Bundler", boost::serialization::base_object<Cal3>(*
this));
166 ar& BOOST_SERIALIZATION_NVP(k1_);
167 ar& BOOST_SERIALIZATION_NVP(k2_);
168 ar& BOOST_SERIALIZATION_NVP(tol_);
Vector3 localCoordinates(const Cal3Bundler &T2) const
Calculate local coordinates to another calibration.
Definition: Cal3Bundler.h:150
Both ManifoldTraits and Testable.
Definition: Manifold.h:117
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
Vector2 Point2
Definition: Point2.h:32
Common base class for all calibration models.
Definition: Cal3.h:69
Definition: Testable.h:112
Cal3Bundler retract(const Vector &d) const
Update calibration with tangent space delta.
Definition: Cal3Bundler.h:145
double k1() const
distorsion parameter k1
Definition: Cal3Bundler.h:87
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
Common code for all Calibration models.
size_t dim() const override
return DOF, dimensionality of tangent space
Definition: Cal3Bundler.h:139
Definition: chartTesting.h:28
double k2() const
distorsion parameter k2
Definition: Cal3Bundler.h:90
Definition: OptionalJacobian.h:38
Calibration used by Bundler.
Definition: Cal3Bundler.h:32
Cal3Bundler(double f, double k1, double k2, double u0=0, double v0=0, double tol=1e-5)
Definition: Cal3Bundler.h:62
double px() const
image center in x
Definition: Cal3Bundler.h:93
static size_t Dim()
return DOF, dimensionality of tangent space
Definition: Cal3Bundler.h:142
double py() const
image center in y
Definition: Cal3Bundler.h:96