 |
AliceVision
Photogrammetric Computer Vision Framework
|
10 #include "IntrinsicBase.hpp"
21 IntrinsicScaleOffset(
unsigned int w,
unsigned int h,
double scaleX,
double scaleY,
double offsetX,
double offsetY)
23 _scale(scaleX, scaleY),
24 _offset(offsetX, offsetY)
29 static std::shared_ptr<IntrinsicScaleOffset> cast(std::shared_ptr<IntrinsicBase> sptr);
35 void setScale(
const Vec2& scale) { _scale = scale; }
37 inline Vec2 getScale()
const {
return _scale; }
39 void setOffset(
const Vec2& offset) { _offset = offset; }
41 inline Vec2 getOffset()
const {
return _offset; }
49 ret(0) +=
static_cast<double>(_w) * 0.5;
50 ret(1) +=
static_cast<double>(_h) * 0.5;
56 Vec2
cam2ima(
const Vec2& p)
const override;
58 virtual Eigen::Matrix2d getDerivativeCam2ImaWrtScale(
const Vec2& p)
const;
60 virtual Eigen::Matrix2d getDerivativeCam2ImaWrtPoint()
const;
62 virtual Eigen::Matrix2d getDerivativeCam2ImaWrtPrincipalPoint()
const;
65 Vec2
ima2cam(
const Vec2& p)
const override;
67 virtual Eigen::Matrix<double, 2, 2> getDerivativeIma2CamWrtScale(
const Vec2& p)
const;
69 virtual Eigen::Matrix2d getDerivativeIma2CamWrtPoint()
const;
71 virtual Eigen::Matrix2d getDerivativeIma2CamWrtPrincipalPoint()
const;
78 void rescale(
float factorW,
float factorH)
override;
94 inline void setInitialScale(
const Vec2& initialScale) { _initialScale = initialScale; }
108 inline bool isRatioLocked()
const {
return _ratioLocked; }
116 inline bool isOffsetLocked()
const {
return _offsetLocked; }
124 inline bool isScaleLocked()
const {
return _scaleLocked; }
150 void setFocalLength(
double focalLengthMM,
double pixelAspectRatio,
bool useCompatibility =
false);
158 void setInitialFocalLength(
double initialFocalLengthMM,
double pixelAspectRatio,
bool useCompatibility =
false);
161 bool _ratioLocked{
true};
162 bool _offsetLocked{
false};
163 bool _scaleLocked{
false};
164 Vec2 _scale{1.0, 1.0};
165 Vec2 _offset{0.0, 0.0};
166 Vec2 _initialScale{-1.0, -1.0};
void rescale(float factorW, float factorH) override
Rescale intrinsics to reflect a rescale of the camera image.
Definition: IntrinsicScaleOffset.cpp:104
const Vec2 getPrincipalPoint() const
Principal point in image coordinate ((0,0) is image top-left).
Definition: IntrinsicScaleOffset.hpp:46
bool operator==(const IntrinsicBase &otherBase) const override
operator ==
Definition: IntrinsicScaleOffset.cpp:14
double getInitialFocalLength() const
get initial focal length in mm
Definition: IntrinsicScaleOffset.cpp:183
bool updateFromParams(const std::vector< double > ¶ms) override
Update intrinsic parameters.
Definition: IntrinsicScaleOffset.cpp:116
Vec2 ima2cam(const Vec2 &p) const override
Transform a point from the image plane to the camera plane.
Definition: IntrinsicScaleOffset.cpp:60
double getPixelAspectRatio() const
estimate the pixel aspect ratio
Definition: IntrinsicScaleOffset.cpp:207
unsigned int h() const
Get the intrinsic image height.
Definition: IntrinsicBase.hpp:58
void lock()
Lock the intrinsic.
Definition: IntrinsicBase.hpp:207
Definition: checkerDetector.cpp:32
unsigned int w() const
Get the intrinsic image width.
Definition: IntrinsicBase.hpp:52
void setRatioLocked(bool lock)
Lock the ratio between fx and fy.
Definition: IntrinsicScaleOffset.hpp:106
bool importFromParams(const std::vector< double > ¶ms, const Version &inputVersion) override
Import a vector of params loaded from a file. It is similar to updateFromParams but it deals with fil...
Definition: IntrinsicScaleOffset.cpp:131
void setInitialScale(const Vec2 &initialScale)
Set the initial scale for the intrinsic (used to constrain minimization)
Definition: IntrinsicScaleOffset.hpp:94
void setFocalLength(double focalLengthMM, double pixelAspectRatio, bool useCompatibility=false)
Definition: IntrinsicScaleOffset.cpp:218
void setOffsetLocked(bool lock)
Lock the offset.
Definition: IntrinsicScaleOffset.hpp:114
Definition: version.hpp:30
Vec2 cam2ima(const Vec2 &p) const override
Transform a point from the camera plane to the image plane.
Definition: IntrinsicScaleOffset.cpp:36
void setScaleLocked(bool lock)
Lock the scale.
Definition: IntrinsicScaleOffset.hpp:122
Vec2 getInitialScale() const
Get the intrinsic initial scale.
Definition: IntrinsicScaleOffset.hpp:100
Basis class for all intrinsic parameters of a camera.
Definition: IntrinsicBase.hpp:27
double getFocalLength() const
get focal length in mm
Definition: IntrinsicScaleOffset.cpp:164
void setInitialFocalLength(double initialFocalLengthMM, double pixelAspectRatio, bool useCompatibility=false)
Definition: IntrinsicScaleOffset.cpp:237
Class with "focal" (scale) and center offset.
Definition: IntrinsicScaleOffset.hpp:18