CGII/framework/include/cgv/math/ransac.h
2018-05-17 15:50:03 +02:00

32 lines
593 B
C++

#pragma once
#include <cmath>
#include <cgv/math/functions.h>
#include <vector>
namespace cgv{
namespace math{
///returns the number of needed ransac iterations
///n_min... minimal number of needed samples
///p_out... percentage of inliers
///p_surety... probability to sample at least one inlier
template <typename T>
unsigned num_ransac_iterations(unsigned n_min, const T p_out, const T p_surety = 0.99)
{
unsigned int iter = (unsigned) ::ceil(log(1.0-p_surety)/log(1.0-pow(1.0-p_out,(T)n_min)));
if (iter == 0)
iter = 1;
return iter;
}
}
}