Basic Image AlgorithmS Library
2.8.0
|
Class for triangulation of 3d points from multiple projection rays using the mid-point method. More...
#include <Geometry/TriangulationMidPoint.hh>
Public Member Functions | |
void | AddDebugLevel (const long int lv) |
void | AddDebugLevel (const std::string &name) |
bool | DebugLevelIsSet (const long int lv) const |
bool | DebugLevelIsSet (const std::string &name) const |
int | GetDebugLevel () const |
std::ostream & | GetDebugStream () const |
void | GetDebugStream (std::ostream &os) const |
int | Intersect (const std::vector< BIAS::Vector3< double > > &pos, const std::vector< BIAS::Vector3< double > > &dir, BIAS::Vector3< double > &res) |
Return point X that is closest in average to given rays which have parametric description by point and direction. More... | |
int | Intersect (const std::vector< BIAS::Vector3< double > > &pos, const std::vector< BIAS::Vector3< double > > &dir, BIAS::Vector3< double > &res, double &dist) |
Return point X that is closest in average to given rays which have parametric description by point and direction. More... | |
BIAS::Vector3< double > | Intersect (const std::vector< BIAS::Vector3< double > > &pos, const std::vector< BIAS::Vector3< double > > &dir) |
Return point X that is closest in average to given rays which have parametric description by point and direction. More... | |
long int | Name2DebugLevel (const std::string &name) const |
looks up a debuglevel in the internal map, returns 0 if not found More... | |
long int | NewDebugLevel (const std::string &name) |
creates a new debuglevel More... | |
void | PrintDebugLevel (std::ostream &os=std::cout) const |
void | RemoveDebugLevel (const long int lv) |
void | RemoveDebugLevel (const std::string &name) |
void | SetDebugLevel (const long int lv) |
void | SetDebugLevel (const std::string &name) |
void | SetDebugStream (const std::ostream &os) |
void | ShowDebugLevel (std::ostream &os=std::cout) const |
prints all internally known debuglevels More... | |
int | Triangulate (const std::vector< BIAS::ProjectionParametersBase * > &cams, const std::vector< BIAS::HomgPoint2D > &points2d, BIAS::Vector3< double > &point3d, double &dist) |
Triangulate 3d point X from projection parameters and corresponding 2d image points (in pixels). More... | |
int | Triangulate (const std::vector< BIAS::ProjectionParametersBase * > &cams, const std::vector< BIAS::HomgPoint2D > &points2d, BIAS::Vector3< double > &point3d) |
int | Triangulate (const std::vector< BIAS::PoseParametrization > &poses, const std::vector< BIAS::HomgPoint2D > &rays, BIAS::Vector3< double > &point3d, double &dist) |
Triangulate 3d point X from camera poses and corresponding rays in local (!) camera coordinate frames ("normalized"). More... | |
int | Triangulate (const std::vector< BIAS::PoseParametrization > &poses, const std::vector< BIAS::HomgPoint2D > &rays, BIAS::Vector3< double > &point3d) |
TriangulationMidPoint () | |
~TriangulationMidPoint () | |
Static Public Member Functions | |
static long int | GetGlobalDebugLevel () |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
int | Intersect_ (const std::vector< BIAS::Vector3< double > > &pos, const std::vector< BIAS::Vector3< double > > &dir, BIAS::Vector3< double > &res, double &dist, const bool computeDist) |
int | Triangulate_ (const std::vector< BIAS::ProjectionParametersBase * > &cams, const std::vector< BIAS::HomgPoint2D > &points2d, BIAS::Vector3< double > &point3d, double &dist, const bool computeDist) |
int | Triangulate_ (const std::vector< BIAS::PoseParametrization > &poses, const std::vector< BIAS::HomgPoint2D > &rays, BIAS::Vector3< double > &point3d, double &dist, const bool computeDist) |
Protected Attributes | |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static long int | GlobalDebugLevel = 0 |
Class for triangulation of 3d points from multiple projection rays using the mid-point method.
Given n projection rays (parametrized by camera center points C_1,...,C_n and normalized direction vectors d_1,...,d_n in world coordinate system), the corresponding 3d point X is computed by the mid-point method as the point with minimal mean squared distance to all rays, i.e. minimize sum of |C_i + l_i*d_i - X|^2 with respect to parameters X,l_1,...,l_n. Note that this method is neither affine nor projective invariant and behaves very poorly under such transformations, it should be used only with Euclidean transformations. See also R. I. Hartley, P. Sturm: Triangulation, in: Computer Vision and Image Understanding 68 (2), p.146--157, 1997.
Definition at line 37 of file TriangulationMidPoint.hh.
TriangulationMidPoint::TriangulationMidPoint | ( | ) |
Definition at line 10 of file TriangulationMidPoint.cpp.
TriangulationMidPoint::~TriangulationMidPoint | ( | ) |
Definition at line 16 of file TriangulationMidPoint.cpp.
|
inlineinherited |
Definition at line 355 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::ShowCamWxVideoSourceFactory::OpenDevice(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Definition at line 341 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::MonteCarloTransform::GetSamples_(), and BIAS::MonteCarloTransform::Transform().
|
inlineinherited |
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inline |
Return point X that is closest in average to given rays which have parametric description by point and direction.
Definition at line 51 of file TriangulationMidPoint.hh.
|
inline |
Return point X that is closest in average to given rays which have parametric description by point and direction.
Average distance to rays is returned in parameter dist.
Definition at line 66 of file TriangulationMidPoint.hh.
|
inline |
Return point X that is closest in average to given rays which have parametric description by point and direction.
Definition at line 79 of file TriangulationMidPoint.hh.
|
protected |
Definition at line 22 of file TriangulationMidPoint.cpp.
References BIAS::MatrixZero, BIAS::Vector3< T >::NormL2(), and BIAS::LeastSquaresLapack::Solve().
Referenced by Triangulate_().
|
inlineinherited |
|
inlineinherited |
creates a new debuglevel
Definition at line 474 of file Debug.hh.
Referenced by BIAS::COSAC< SolutionType >::COSAC(), BIAS::ProjectionParametersPerspectiveDepth::Init(), BIAS::MonteCarloTransform::MonteCarloTransform(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::RotationAveraging::RotationAveraging(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and BIAS::UnscentedTransform::UnscentedTransform().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 318 of file Debug.hh.
Referenced by BIAS::ShowCamWxVideoSourceFactory::CreateBumbleBee(), BIAS::ShowCamWxVideoSourceFactory::CreateDCAM(), BIAS::VideoSource_MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inlineinherited |
|
inline |
Triangulate 3d point X from projection parameters and corresponding 2d image points (in pixels).
Definition at line 96 of file TriangulationMidPoint.hh.
|
inline |
Definition at line 103 of file TriangulationMidPoint.hh.
|
inline |
Triangulate 3d point X from camera poses and corresponding rays in local (!) camera coordinate frames ("normalized").
Definition at line 116 of file TriangulationMidPoint.hh.
|
inline |
Definition at line 123 of file TriangulationMidPoint.hh.
|
protected |
Definition at line 97 of file TriangulationMidPoint.cpp.
References BIAS::Equal(), Intersect_(), and BIAS::Vector3< T >::NormL2().
|
protected |
Definition at line 124 of file TriangulationMidPoint.cpp.
References BIAS::Equal(), and Intersect_().
|
protectedinherited |
Definition at line 510 of file Debug.hh.
Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().
|
protectedinherited |
new concept, debuglevel are managed here in the debug class
Definition at line 516 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |