Image Component Library (ICL)
|
Generic RANSAC (RAndom SAmpling Consensus) Implementation. More...
#include <RansacFitter.h>
Classes | |
struct | Result |
result structure More... | |
Public Types | |
typedef std::vector< DataPoint > | DataSet |
DataSet type (just a set of DataPoint instances) | |
typedef utils::Function< Model, const DataSet & > | ModelFitting |
Function for the fitting module (gets a dataset and returns the fitted model) | |
typedef utils::Function < icl64f, const Model &, const DataPoint & > | PointError |
Error function for single points. | |
Public Member Functions | |
RansacFitter () | |
empty constructor (creates a dummy instance) | |
RansacFitter (int minPointsForModel, int iterations, ModelFitting fitting, PointError err, icl64f maxModelDistance, int minClosePointsForGoodModel, icl64f minErrorExit=0) | |
constructor with given parameters | |
const Result & | fit (const DataSet &allPoints) |
fitting function (actual RANSAC algorithm) | |
Private Member Functions | |
void | find_random_consensus_set (DataSet &currConsensusSet, const DataSet &allPoints, std::vector< int > &usedIndices) |
internal utility method | |
Static Private Member Functions | |
static bool | find_in (const std::vector< int > &v, int i, int n) |
internal utility method | |
Private Attributes | |
int | m_minPointsForModel |
minimum points that are used to create a coarse model | |
int | m_iterations |
number of iterations | |
icl64f | m_maxModelDistance |
maximum distance of a point to the model to become an inlier | |
int | m_minClosePointsForGoodModel |
minimum amount of inliers for a 'good' model | |
ModelFitting | m_fitting |
fitting function | |
PointError | m_err |
point-model error function | |
icl64f | m_minErrorExit |
min error criterion for early exit | |
Result | m_result |
internal result buffer |
Generic RANSAC (RAndom SAmpling Consensus) Implementation.
The RansacFitter provides a generic framework, for RANSAC based model fitting.
The RANSAC Algorithm is well described on Wikipedia
An example is given in the ICL Manual
The two tempalte parameters are kept very general. Therefore, there are just a few restrictions for the DataPoint and Model classes.
typedef std::vector<DataPoint> icl::math::RansacFitter< DataPoint, Model >::DataSet |
DataSet type (just a set of DataPoint instances)
typedef utils::Function<Model,const DataSet&> icl::math::RansacFitter< DataPoint, Model >::ModelFitting |
Function for the fitting module (gets a dataset and returns the fitted model)
typedef utils::Function<icl64f,const Model&,const DataPoint&> icl::math::RansacFitter< DataPoint, Model >::PointError |
Error function for single points.
icl::math::RansacFitter< DataPoint, Model >::RansacFitter | ( | ) | [inline] |
empty constructor (creates a dummy instance)
icl::math::RansacFitter< DataPoint, Model >::RansacFitter | ( | int | minPointsForModel, |
int | iterations, | ||
ModelFitting | fitting, | ||
PointError | err, | ||
icl64f | maxModelDistance, | ||
int | minClosePointsForGoodModel, | ||
icl64f | minErrorExit = 0 |
||
) | [inline] |
constructor with given parameters
The parameters functionality is documented with the analogously named member variables
static bool icl::math::RansacFitter< DataPoint, Model >::find_in | ( | const std::vector< int > & | v, |
int | i, | ||
int | n | ||
) | [inline, static, private] |
internal utility method
void icl::math::RansacFitter< DataPoint, Model >::find_random_consensus_set | ( | DataSet & | currConsensusSet, |
const DataSet & | allPoints, | ||
std::vector< int > & | usedIndices | ||
) | [inline, private] |
internal utility method
const Result& icl::math::RansacFitter< DataPoint, Model >::fit | ( | const DataSet & | allPoints | ) | [inline] |
fitting function (actual RANSAC algorithm)
PointError icl::math::RansacFitter< DataPoint, Model >::m_err [private] |
point-model error function
ModelFitting icl::math::RansacFitter< DataPoint, Model >::m_fitting [private] |
fitting function
int icl::math::RansacFitter< DataPoint, Model >::m_iterations [private] |
number of iterations
icl64f icl::math::RansacFitter< DataPoint, Model >::m_maxModelDistance [private] |
maximum distance of a point to the model to become an inlier
int icl::math::RansacFitter< DataPoint, Model >::m_minClosePointsForGoodModel [private] |
minimum amount of inliers for a 'good' model
icl64f icl::math::RansacFitter< DataPoint, Model >::m_minErrorExit [private] |
min error criterion for early exit
int icl::math::RansacFitter< DataPoint, Model >::m_minPointsForModel [private] |
minimum points that are used to create a coarse model
Result icl::math::RansacFitter< DataPoint, Model >::m_result [private] |
internal result buffer