scikit-surgerygoicp
Purpose
This is a re-wrapping of the GoICP algorithm in https://github.com/aalavandhaann/go-icp_cython using PyBind11.
pip install scikit-surgerygoicp
Working on Ubunutu (Python 3.6, 3.7, 3.8), Mac (3.6, 3.7, 3.8) and Windows (3.6, 3.7)
Usage
Only the below classes have been wrapped:
- GoICP
- POINT3D
- ROTNODE
- TRANSNODE
A simplified usage is shown below. See Testing/test.py for a full example.
import numpy as np;
from sksurgerygoicppython import GoICP, POINT3D, ROTNODE, TRANSNODE;
def loadPointCloud(filename):
pcloud = np.loadtxt(filename, skiprows=1);
plist = pcloud.tolist();
p3dlist = [];
for x,y,z in plist:
pt = POINT3D(x,y,z);
p3dlist.append(pt);
return pcloud.shape[0], p3dlist;
goicp = GoICP();
Nm, a_points = loadPointCloud('./Testing/Data/model_bunny.txt');
Nd, b_points = loadPointCloud('./Testing/Data/data_bunny.txt');
goicp.loadModelAndData(Nm, a_points, Nd, b_points);
goicp.setDTSizeAndFactor(300, 2.0);
goicp.BuildDT();
goicp.Register();
print(goicp.optimalRotation()); # A python list of 3x3 is returned with the optimal rotation
print(goicp.optimalTranslation());# A python list of 1x3 is returned with the optimal translation
Credits
https://github.com/aalavandhaann/go-icp_cython https://github.com/yangjiaolong/Go-ICP
Preferred Branching Workflow for Contributions.
We welcome contributions to this project. Please use the following workflow.
- Raise issue in this project's Github Issue Tracker.
- Fork repository.
- Create a feature branch called
<issue-number>-<some-short-description>replacing<issue-number>with the Github issue number and<some-short-description>with your description of the thing you are implementing. - Code on that branch.
- Push to your remote when ready.
- Create pull request.
- We will review code, suggest and required changes and merge to master when it is ready.
Metadata
Release files for scikit-surgerygoicp 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scikit_surgerygoicp-0.2.5-cp38-cp38-macosx_10_9_x86_64.whl | CPython 3.8 | CPython 3.8 | macOS 10.9+ x86-64 | Details |
| scikit_surgerygoicp-0.2.5-cp37-cp37m-macosx_10_9_x86_64.whl | CPython 3.7 | CPython 3.7 pymalloc | macOS 10.9+ x86-64 | Details |
Total release size: 228.1 kB
Release files / scikit_surgerygoicp-0.2.5-cp38-cp38-macosx_10_9_x86_64.whl
| Download URL | scikit_surgerygoicp-0.2.5-cp38-cp38-macosx_10_9_x86_64.whl |
|---|---|
| Size | 114.7 kB |
| Tags | CPython 3.8 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
e4bf2aba348cb567591556ac0d2a925c276b4abf8152fc7cad51f34eb76e11a4
|
|
BLAKE2b-256 checksum How to use checksums |
ad8dbbf8fe1f3c888d260bb0ab223cbb591820097316f03f7162f3e898c986e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12
|
Release files / scikit_surgerygoicp-0.2.5-cp37-cp37m-macosx_10_9_x86_64.whl
| Download URL | scikit_surgerygoicp-0.2.5-cp37-cp37m-macosx_10_9_x86_64.whl |
|---|---|
| Size | 113.3 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
52c054b771acdd8af720da19df6a4ad7b02841a2cdbbb96f857d4829ff23b5d8
|
|
BLAKE2b-256 checksum How to use checksums |
16a7d30c93b5cf106c5561ed8cd22b62860d2a9c30a50d03b6f57b5c67fef6a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12
|