Skip to main content

scikit-surgerypclcpp

Build Status Build status

scikit-surgerypclcpp implements image guided surgery algorithms, using PCL, in C++ and wrapped in Python.

scikit-surgerypclcpp is part of the SNAPPY software project, developed at the Wellcome EPSRC Centre for Interventional and Surgical Sciences, part of University College London (UCL).

Features

  • Support for Python Wheels, thanks to Matthew Brett's multibuild.
  • Iterative Closest Point (ICP) algorithm to register two N (rows) x 3 (columns, x, y, z) point sets., using either normal ICP (exact point match), or LM-ICP.
  • Downsampling of point clouds via pcl::VoxelGrid filter.
  • Removal of outlier points from point clouds via pcl::StatisticalOutlierRemoval.
  • Filtering of points using pcl::PassThrough filter.
  • Filter of points using pcl::pcl::RadiusOutlierRemoval filter.
  • Course registration of 2 point clouds, computing surface normals, SIFT Keypoints, FPFH descriptors, RANSAC to match keypoints, then SVD to compute rigid transformation.
  • Generalized Iterative Closest Point (GICP) algorithm to register two N (rows) x 3 (columns, x, y, z) point sets, using surface normals or distance to reject matches.

Look in Code/PythonBoost/sksLibPython.cpp for python method names, and in the containing folder, to see header files with the method signatures.

Caveat

As of 2020-05-19 and Issue 2, there are a few build issues, that are proving problematic, and we have limited time to resolve them.

  • C++ tests are turned off, so currently the CI builds build the python wheel and then runs python unit tests.
  • To turn C++ tests on for CI, add the ctest commands into travis_cmake_build.sh and appveyor.yml and turn -DBUILD_TESTING:BOOL=ON
  • If you turn C++ tests on in the CI build, Mac should work fine, Linux has problems liking to LZ4 due to FLANN 1.9.1 so it was downgraded to 1.8.1, and on Windows, we get multiply defined symbols due to Boost. Good luck fixing Windows/Linux.
  • C++ tests will still default to -DBUILD_TESTING:BOOL=ON in your local build.
  • There was problems with all the templating, so PCL_NO_PRECOMPILE was set in the PCL build and in this project build, and compilation and python unit testing was successful.

So, as of 2020-05-23, Issue 2 was closed, with ICP, Voxel Grid downsampling and Statistical Outlier Removal working. So, unless someone has made changes to the build, and fixed the above points, (at which point they should edit this README file and remove this caveat), then you should assume this caveat is still valid.

Installing

You can pip install the latest Python package as follows:

pip install scikit-surgerypclcpp

Developing

Cloning

You can clone the repository using the following command:

git clone https://github.com/UCL/scikit-surgerypclcpp

Build instructions

Still not for the faint-hearted. It depends if you are a C++ developer familiar with CMake or a hybrid C++/Python developer primarily interested in writing Python extensions.

The simplest advice really is to read appveyor.yml, as this will always be up to date.

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.

Copyright 2018 University College London. scikit-surgeryopencvcpp is released under the BSD-3 license. Please see the license file for details.

Acknowledgements

Supported by Wellcome and the EPSRC.

The project was generated, using CMakeCatchTemplate and CMakeTemplateRenamer.

Metadata

Release files for scikit-surgerypclcpp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for scikit-surgerypclcpp 0.3.0
File
scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64 Details
scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-32 Details
scikit_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.13+ x86-64 Details
scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details
scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32 Details
scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.13+ x86-64 Details
scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details
scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32 Details
scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.13+ x86-64 Details
scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl CPython 3.5 CPython 3.5 pymalloc Windows x86-64 Details
scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl CPython 3.5 CPython 3.5 pymalloc Windows x86-32 Details

Total release size: 8.9 MB

Release files / scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_x86_64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_x86_64.whl
Size 644.9 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1b220ede43b722d7d74b51f388f4bb292ed3b1c383ad7838ab936109a8f8c4ce
BLAKE2b-256 checksum
How to use checksums
59c90be491e5d4be13897f0d8b6912ed1e9d3300a69443db904870ef6fe52d14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.12

Release files / scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_i686.whl

Download URL scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_i686.whl
Size 646.0 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
4f7f1d85ad72a7c463eb03cd7e5f1b26b6ae3ad46c4706040d55b89f1a7e1d2a
BLAKE2b-256 checksum
How to use checksums
f3ecc6abb86480911b3a7dd4eedb7e84d1515071e870b8847c6d09f07bbc4ecd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.12

Release files / scikit_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl
Size 591.2 kB
Tags CPython 3.8 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
dc5f8663912fb4d2d71060ca2fc09aa16b2e5f5abb9c0713e10f24b075aa2adb
BLAKE2b-256 checksum
How to use checksums
10eccc5c4d21f1d27d462d2e5c3a5b421a6b71844c6a655564ea1cad16644cff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

Release files / scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl
Size 598.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
4dd3b6284f616036ca2615f345e30a3b9a4a149be7ad8583a2eaa480b63d9a30
BLAKE2b-256 checksum
How to use checksums
525361188c1c078ff79d469d5a0378aea4766a8fb60c6fd2696f3723483043e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.5

Release files / scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl

Download URL scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl
Size 510.6 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
5defefb0d49e2fe9e08006d12812591203efb20523d80340ec54683478c2992c
BLAKE2b-256 checksum
How to use checksums
ce3344b663cf550e4a2f15fba27e0746f95539ffea24a50af01713b40c9d707f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.5

Release files / scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_x86_64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_x86_64.whl
Size 644.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
5b5e3729475dcdc802d58794d5a947be8b402b53b2f4defbb98c48edbbe1c17f
BLAKE2b-256 checksum
How to use checksums
4da706585ab218f1d459f248388342e23cdf1e93dd1f81885b53ab552beed62b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.12

Release files / scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_i686.whl

Download URL scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_i686.whl
Size 646.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
884e714e35bd1aa902145dc2459b372ee4003fdf5c108cde1c495cd16e0f13cf
BLAKE2b-256 checksum
How to use checksums
8cdf0b57c8f4523f634398180f29499ad6fd84e8a5696ca6a2449b82718663c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.12

Release files / scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl
Size 587.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
a6e0b00301686388036be9fbbdaf6f807c3f517030314a212be14c7b5e525c79
BLAKE2b-256 checksum
How to use checksums
81a4f0faafb92dc624486866bbb11d569b7a24d542bdeac4efc450ae3f7a02ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

Release files / scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl
Size 596.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
20b886268c028ad6e660fd84763f0df9be5a75db8edc33fc832a8c6626efc039
BLAKE2b-256 checksum
How to use checksums
80c60983d9b17a4b200a9ef07930edbf17f1f262495eb79069b27c89eeeba4f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

Release files / scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl

Download URL scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl
Size 492.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
b093854043a6a60aa08c580723aa2209c395c0d9b0c0cd1caa194dfce8715ef9
BLAKE2b-256 checksum
How to use checksums
ff80f491aec2240c3401bfae11b5c5557901f16d6c18819b83231af08b5b511a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

Release files / scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_x86_64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_x86_64.whl
Size 644.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
a0b30d782c1949cfb3a499b7fe3bb48b23b2189b4220b65798a465b7200f21a0
BLAKE2b-256 checksum
How to use checksums
e572ba408b9b4aea47a538c5060055b2036cd4739cb8793fa920d4421e7d9044
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.12

Release files / scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_i686.whl

Download URL scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_i686.whl
Size 646.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
b34835d2acef8d6197d7333e045650fc0e4804f161f3c8928298d878f1d42745
BLAKE2b-256 checksum
How to use checksums
2a99a51d0c054b615d5eb02f41ce6bc8eae4e462f0d45fcf22602ff102271a0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.12

Release files / scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl
Size 587.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
e7fad7e764ded913227c6e5bd7c429d127f5a8346f88fbb168c0548da767c4fd
BLAKE2b-256 checksum
How to use checksums
6d946ddbaa3f7fcf1c6d65c4ea8ea28851dab620015a7013a789448396cedfbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

Release files / scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl

Download URL scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl
Size 596.3 kB
Tags CPython 3.5 CPython 3.5 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
d4dfe5191defb4a606a23881e42762cc81da62627e190ebecd683d0f5e7566ea
BLAKE2b-256 checksum
How to use checksums
5356727492c3bd8976e92b0467563a8ac6b2e4c7c90f797a73535536337c4074
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.5.4

Release files / scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl

Download URL scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl
Size 492.2 kB
Tags CPython 3.5 CPython 3.5 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
e8274d9b4b423de86a6d62acf9af05a97b21038b99bfe33f2dad30c76813674c
BLAKE2b-256 checksum
How to use checksums
9832a514b8f7d87736ffbe216127b8b4441da8af8fbd5bb19e67b075f1a37c73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.5.4

Release history Release notifications | RSS feed

This release

0.3.0 This release

15 release files

0.2.0

15 release files

0.1.2

12 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page