pyRANSAC-3D is an open source implementation of Random sample consensus (RANSAC) method. It fits primitive shapes such as planes, cuboids and cylinder in a point cloud to many aplications: 3D slam, 3D reconstruction, object tracking and many others.
Requirements: Numpy
Install with Pypi:
pip3 install pyransac3d
import pyransac3d as pyrsc
points = load_points(.) # Load your point cloud as a numpy array (N, 3)
plane1 = pyrsc.Plane()
best_eq, best_inliers = plane1.fit(points, 0.01)
Results in the plane equation Ax+By+Cz+D:
[0.720, -0.253, 0.646, 1.100]
Loading a noisy sphere's point cloud with r = 5 centered in 0 we can use the following code:
import pyransac3d as pyrsc
points = load_points(.) # Load your point cloud as a numpy array (N, 3)
sph = pyrsc.Sphere()
center, radius, inliers = sph.fit(points, thresh=0.4)
Results:
center: [0.010462385575072288, -0.2855090643954039, 0.02867848979091283]
radius: 5.085218633039647
- The documentation is this Ṕage.
- Source code in the Github repository.
- Pypi pakage installer
- You can find the animations you see in the documentation on branch Animations. It needs Open3D library to run. The Animation branch is not regularly maintained, it only exists to create some cool visualizations ;D
Did this repository was useful for your work? =)
@software{Mariga_pyRANSAC-3D_2022,
author = {Mariga, Leonardo},
doi = {10.5281/zenodo.7212567},
month = {10},
title = {{pyRANSAC-3D}},
url = {https://github.com/leomariga/pyRANSAC-3D},
version = {v0.6.0},
year = {2022}
}
See CONTRIBUTING
Developed with ❤️ by the internet
Mainteiner: Leonardo Mariga
Did you like it? Remember to click on 🌟 button.