TL;DR : Is there a C++ implementation of RANSAC or other robust correspondence algorithms that is freely usable with arbitrary 2D point sets?
I know that many implem
A good-looking RANSAC, LMedS, MSAC, MLESAC C++ implementation for Windows and Linux is here: https://github.com/sunglok/rtl.
RTL: RANSAC Template Library RANSAC Template Library (RTL) is an open-source robust regression tool especially with RANSAC family. RTL aims to provide fast, accurate, and easy ways to estimate any model parameters with data contaminated with outliers (incorrect data). RTL includes recent RANSAC variants with their performance evaluation with several models with synthetic and real data. RTL is written in generic programming style (template in C++) for its further applications with user-defined models. RTL is distributed under Simplified BSD License.
The basic class is RANSAC:
template
class RANSAC;
Other classes are inherited from it:
template
class MLESAC : virtual public RANSAC
...
The usage is simple (an example from README):
// Find the best model using RANSAC
LineEstimator estimator;
RTL::RANSAC > ransac(&estimator);
Line model;
double loss = ransac.FindBest(model, data, data.size(), 2);
// Determine inliers using the best model if necessary
std::vector inliers = ransac.FindInliers(model, data, data.size());
The paper: https://sites.google.com/site/sunglok/files/Choi09_bmvc.pdf?attredirects=0