1 #ifndef __EssentialPoint2Line_hh__
2 #define __EssentialPoint2Line_hh__
4 #include <MathAlgo/UnscentedTransform.hh>
23 for (
int c=0; c<7; c++){
25 for (
int r=0; r<7; r++){
26 src_cov[r][c] = E_cov[r][c];
30 for (
int c=0; c<3; c++){
32 for (
int r=0; r<3; r++){
33 src_cov[r+7][c+7] = cov2[r][c];
40 int res =
Transform(src, src_cov, dst, dst_cov);
53 for (
int i=0; i<7; i++)
55 for (
int i=0; i<3; i++)
70 #endif // __EssentialPoint2Line_hh__
class HomgPoint2D describes a point with 2 degrees of freedom in projective coordinates.
void SetEQ(const Vector< EP_TYPE > &EQvec)
Set this from E parametrization.
class representing the covariance matrix of a homogenous point 2D
computes line and associated covariance matrix given by a point and an essential matrix using unscent...
Matrix3x3< EP_TYPE > GetEssentialMatrix() const
returns the essential matrix computed from parametrization
Slim class bundling essential matrix parameterization and associated covariance matrix.
const Matrix< EP_TYPE > & GetCov() const
returns the covariance matrix associated with the EQ vector
virtual int Transform_(const BIAS::Vector< double > &src, BIAS::Vector< double > &dst) const
implements a point transformation
const Vector< EP_TYPE > & GetEQ7() const
Returns a vector of dimension 7 where first 3 entries are the epipole and the last 4 entries are the ...
void MakeSymmetric()
averages transposed elements to make symmetric
int Compute(const BIAS::HomgPoint2D &p2, const BIAS::HomgPoint2DCov &cov2, const BIAS::EParametrization &E, BIAS::Vector3< double > &line, BIAS::Matrix3x3< double > &cov_line)