Multi-threaded generic RANSAC implemetation
Switch branches/tags
Nothing to show
Clone or download
Latest commit a0ce704 Jun 29, 2018
Failed to load latest commit information.
examples upatedimage Jun 30, 2018
include Bug with inliers labeled as outliers fixed. Jun 30, 2018
.gitignore Added image to readme and gitignore Sep 5, 2015 Changed license Sep 5, 2015 Changed license Sep 5, 2015

GRANSAC: Multi-threaded generic RANSAC implemetation

This is a header-only, multi-threaded implementation of the RANSAC algorithm, used widely in computer vision.

Unlikely most other implementations, this is a generic implementation which can be adopted for any problem. The user has to implement a class that inherits the AbstractModel class. Using RANSAC afterwards should just work.


This library uses C++11 features, so a suitable compiler is required (GCC 4.7+, Visual Studio 2013+). Additionally, OpenMP is needed for multi-threading.

Optionally, to build the line fiting example, OpenCV and CMake are required.


Just include the header GRANSAC.hpp in your application. The AbstractModel class needs to be inherited to implement a suitable model for your application.

Example: Line Fitting

To demonstrate how to use the library a line fitting example is included. To build this example do the following:

$ pwd
$ mkdir build && cd build
$ cmake ../examples/
$ make
$ ./LineFittingSample 1000 500

Running LineFittingSample should display a window with random 2D points around the diagonal. Green points show inliers.

RANSAC line fitting example


GRANSAC is released under an MIT License.


Srinath Sridhar ( Max Planck Institute for Informatics