00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef LASBAWRAPPER_H
00026 #define LASBAWRAPPER_H
00027
00028 #include <QVMatrix>
00029 #include <QV3DPointF>
00030 #include <qvsfm.h>
00031 #include <QHash>
00032 #include <qvmath.h>
00033 #include <qvnumericalanalysis.h>
00034
00035 #ifndef DOXYGEN_IGNORE_THIS
00036 extern double final_reprojection_error, initial_reprojection_error;
00037 extern int sba_elapsed_milisecs, sba_iterations, sba_stop_condition;
00038 extern int sba_damping_iters;
00039 extern double sba_time_total, sba_time_solve, sba_time_system, last_mu_used;
00040
00041 #define SBA_INIT_MU 1E-03
00042 #define SBA_STOP_THRESH 1E-12
00043
00065 bool laSBAOptimization( const QList<QVCameraPose> &cameras,
00066 const QList<QV3DPointF> &points3D,
00067 const QList< QHash<int, QPointF> > &pointProjections,
00068 QList<QVCameraPose> &refinedCameras,
00069 QList<QV3DPointF> &refinedPoints3D,
00070 const unsigned int numIterations = 100,
00071 const unsigned int numFixedFrames = 0,
00072 const unsigned int numFixedPoints = 0,
00073 const double initialMuScaleFactor = SBA_INIT_MU,
00074 const double stoppingThresholdForJacobian = SBA_STOP_THRESH,
00075 const double stoppingThresholdForProjections = SBA_STOP_THRESH,
00076 const double stoppingThresholdForReprojectionError = SBA_STOP_THRESH,
00077 const double stoppingThresholdForReprojectionErrorIncrement = 0.0);
00078
00079 #endif // DOXYGEN_IGNORE_THIS
00080
00081 #endif // LASBAWRAPPER_H
00082