 |
AliceVision
Photogrammetric Computer Vision Framework
|
9 #include <aliceVision/numeric/numeric.hpp>
10 #include <aliceVision/numeric/projection.hpp>
11 #include <aliceVision/camera/cameraCommon.hpp>
12 #include <aliceVision/camera/IntrinsicScaleOffsetDisto.hpp>
13 #include <aliceVision/geometry/Pose3.hpp>
15 #include "DistortionFisheye1.hpp"
35 Equirectangular(
unsigned int w,
unsigned int h,
double focalLengthPixX,
double focalLengthPixY,
double offsetX,
double offsetY)
43 static std::shared_ptr<Equirectangular> cast(std::shared_ptr<IntrinsicBase> sptr);
49 EINTRINSIC
getType()
const override;
51 Vec2
transformProject(
const Eigen::Matrix4d& pose,
const Vec4& pt,
bool applyDistortion =
true)
const override;
58 Vec2
project(
const Vec4& pt,
bool applyDistortion =
true)
const override;
62 Eigen::Matrix<double, 2, 3> getDerivativeTransformProjectWrtDisto(
const Eigen::Matrix4d& pose,
const Vec4& pt)
const;
64 Eigen::Matrix<double, 2, 2> getDerivativeTransformProjectWrtScale(
const Eigen::Matrix4d& pose,
const Vec4& pt)
const;
66 Eigen::Matrix<double, 2, 2> getDerivativeTransformProjectWrtPrincipalPoint(
const Eigen::Matrix4d& pose,
const Vec4& pt)
const;
70 Eigen::Matrix<double, 2, Eigen::Dynamic> getDerivativeTransformProjectWrtDistortion(
const Eigen::Matrix4d& pose,
const Vec4& pt)
const override;
72 Eigen::Matrix<double, 3, Eigen::Dynamic> getDerivativeBackProjectUnitWrtDistortion(
const Vec2& pt2D)
const override;
76 Eigen::Matrix<double, 3, 2> getDerivativetoUnitSphereWrtPoint(
const Vec2& pt)
const;
Vec2 transformProject(const Eigen::Matrix4d &pose, const Vec4 &pt, bool applyDistortion=true) const override
Projection of a 3D point into the camera plane (Apply pose, disto (if any) and Intrinsics)
Vec3 toUnitSphere(const Vec2 &pt) const override
Transform a given point (in pixels) to unit sphere in meters.
Definition: Equirectangular.cpp:118
Eigen::Matrix< double, 2, Eigen::Dynamic > getDerivativeTransformProjectWrtParams(const Eigen::Matrix4d &pose, const Vec4 &pt3D) const override
Get the derivative of a projection of a 3D point into the camera plane.
Definition: Equirectangular.cpp:108
double getVerticalFov() const override
Get the vertical FOV in radians.
Definition: Equirectangular.cpp:185
bool isVisibleRay(const Vec3 &ray) const override
Return true if this ray should be visible in the image.
Definition: Equirectangular.cpp:179
void assign(const IntrinsicBase &other) override
Assign object.
Definition: Equirectangular.hpp:45
unsigned int h() const
Get the intrinsic image height.
Definition: IntrinsicBase.hpp:58
virtual bool isValid() const
Return true if the intrinsic is valid.
Definition: IntrinsicBase.hpp:379
Definition: checkerDetector.cpp:32
unsigned int w() const
Get the intrinsic image width.
Definition: IntrinsicBase.hpp:52
double pixelProbability() const override
how a one pixel change relates to an angular change
Definition: Equirectangular.cpp:187
EINTRINSIC getType() const override
Get embed camera type.
Definition: Equirectangular.cpp:181
Class with disto.
Definition: IntrinsicScaleOffsetDisto.hpp:23
Eigen::Matrix< double, 3, Eigen::Dynamic > getDerivativeBackProjectUnitWrtParams(const Vec2 &pt2D) const override
Get the derivative of the unit sphere backprojection.
Definition: Equirectangular.cpp:152
Eigen::Matrix< double, 2, 3 > getDerivativeTransformProjectWrtPoint3(const Eigen::Matrix4d &pose, const Vec4 &pt) const override
Get the derivative of a projection of a 3D point into the camera plane.
Definition: Equirectangular.cpp:47
double getHorizontalFov() const override
Get the horizontal FOV in radians.
Definition: Equirectangular.cpp:183
Equirectangular is a camera model used for panoramas. See https://en.wikipedia.org/wiki/Equirectangul...
Definition: Equirectangular.hpp:28
Equirectangular * clone() const override
Polymorphic clone.
Definition: Equirectangular.hpp:41
Vec2 project(const Vec4 &pt, bool applyDistortion=true) const override
Projection of a 3D point into the camera plane (Apply disto (if any) and Intrinsics)
Definition: Equirectangular.cpp:34
Basis class for all intrinsic parameters of a camera.
Definition: IntrinsicBase.hpp:27
bool isValid() const override
Return true if the intrinsic is valid.
Definition: Equirectangular.hpp:47
double imagePlaneToCameraPlaneError(double value) const override
Normalize a given unit pixel error to the camera plane.
Definition: Equirectangular.cpp:177