1 #ifndef PROJECTION_TRIANGULATION_HPP__ 2 #define PROJECTION_TRIANGULATION_HPP__ 5 #include <Eigen/Geometry> 22 : trans( Eigen::Isometry3d::Identity() ),
23 scenePoint( Eigen::Vector3d::Zero() ),
39 Eigen::Quaterniond R(trans.rotation());
40 Eigen::Vector3d T(trans.translation());
43 Eigen::Matrix<double,3,3> A;
44 A <<
xl, -(R.inverse()*
xr), (xl.cross(R.inverse()*xr-T)-T);
47 Eigen::Vector3d param = A.colPivHouseholderQr().solve(b);
49 Eigen::Vector3d Vp = param[2]*(xl.cross(R.inverse()*xr-T)-T);
50 Eigen::Vector3d Xl = xl * param[0];
52 scenePoint = Xl + 0.5 * Vp;
53 error = 0.5 * Vp.norm();
59 vl << std::cos(a1), std::sin(a1), 0;
60 vr << std::cos(a2), std::sin(a2), 0;
62 Eigen::Quaterniond R(trans.rotation());
63 Eigen::Matrix<double,3,3> A;
64 A <<
xl,
vl, -(R.inverse()*(xr+
vr));
65 Eigen::Vector3d b = Eigen::Vector3d::Zero();
66 Eigen::Vector3d param = A.colPivHouseholderQr().solve(b);
68 Eigen::Vector3d v = param[0] * xl + param[1] *
vl;
69 direction = v.normalized();
Eigen::Vector3d scenePoint
Definition: StereoTriangulation.hpp:13
StereoTriangulation()
Definition: StereoTriangulation.hpp:21
Eigen::Vector3d vl
Definition: StereoTriangulation.hpp:19
void calcDirection(double a1, double a2)
Definition: StereoTriangulation.hpp:56
Eigen::Vector3d direction
Definition: StereoTriangulation.hpp:16
Eigen::Vector3d getScenePoint() const
Definition: StereoTriangulation.hpp:72
void calcScenePoint(const Eigen::Vector2d &p1, const Eigen::Vector2d &p2)
Definition: StereoTriangulation.hpp:32
Eigen::Vector3d xr
Definition: StereoTriangulation.hpp:18
Eigen::Vector3d getDirection() const
Definition: StereoTriangulation.hpp:77
Definition: StereoTriangulation.hpp:10
Eigen::Isometry3d trans
Definition: StereoTriangulation.hpp:12
double error
Definition: StereoTriangulation.hpp:14
double getError() const
Definition: StereoTriangulation.hpp:82
Eigen::Vector3d vr
Definition: StereoTriangulation.hpp:19
Eigen::Vector3d xl
Definition: StereoTriangulation.hpp:18
void setTransform(const Eigen::Isometry3d &camr2caml)
Definition: StereoTriangulation.hpp:27
Definition: Homography.hpp:8