38#include "hugin_config.h"
94 template<
class Estimator,
class S,
class T>
98 const std::vector<T> &data,
125 template<
class Estimator,
class S,
class T>
128 const std::vector<T> &data);
135 static unsigned int choose(
unsigned int n,
unsigned int m);
137 template<
class Estimator,
class T>
139 const std::vector<T> &data,
146 template<
class Estimator,
class T,
class S>
174template<
class Estimator,
class S,
class T>
178 const std::vector<T> &data,
187 return std::vector<const T*>();
211 std::mt19937
rng(
static_cast<unsigned int>(std::time(0)));
229 for(l=0; l<(
int)numForEstimate; l++) {
254 if(res.second ==
true) {
271 std::cerr <<
"RANSAC iter " <<
i <<
": inliers: " <<
numVotesForCur <<
" parameters:";
274 std::cerr << std::endl;
301 std::set<int *, SubSetIndexComparator >::iterator
it =
chosenSubSets.begin();
326template<
class Estimator,
class S,
class T>
329 const std::vector<T> &data)
335 int *
arr =
new int[numForEstimate];
364template<
class Estimator,
class T>
386template<
class Estimator,
class T,
class S>
401 for(
j=0;
j<numForEstimate;
j++)
bool operator()(const int *arr1, const int *arr2) const
SubSetIndexComparator(int arrayLength)
This class implements the Random Sample Consensus (RanSac) framework, a framework for robust paramete...
static void estimate(const Estimator ¶mEstimator, const std::vector< T > &data, int numForEstimate, short *bestVotes, short *curVotes, int &numVotesForBest, int *arr)
static unsigned int choose(unsigned int n, unsigned int m)
Compute n choose m [ n!/(m!*(n-m)!)].
static void computeAllChoices(const Estimator ¶mEstimator, const std::vector< T > &data, int numForEstimate, short *bestVotes, short *curVotes, int &numVotesForBest, int startIndex, int n, int k, int arrIndex, int *arr)
static std::vector< const T * > compute(S ¶meters, std::vector< int > &inliers, const Estimator ¶mEstimator, const std::vector< T > &data, double desiredProbabilityForNoOutliers, double maximalOutlierPercentage)
Estimate the model parameters using the RanSac framework.
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.