Skip to main content

A template project, to enable people to build nicely structured C++ projects.

Project description

scikit-surgerygoicp

Build Status Build Status

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.

  1. Raise issue in this project's Github Issue Tracker.
  2. Fork repository.
  3. 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.
  4. Code on that branch.
  5. Push to your remote when ready.
  6. Create pull request.
  7. We will review code, suggest and required changes and merge to master when it is ready.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

scikit_surgerygoicp-0.2.5-cp38-cp38-macosx_10_9_x86_64.whl (114.7 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

scikit_surgerygoicp-0.2.5-cp37-cp37m-macosx_10_9_x86_64.whl (113.3 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page