Skip to main content

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

Project description

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.

Licensing and copyright

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.

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_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl (591.2 kB view details)

Uploaded CPython 3.8 macOS 10.13+ x86-64

scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl (598.5 kB view details)

Uploaded CPython 3.7m Windows x86-64

scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl (510.6 kB view details)

Uploaded CPython 3.7m Windows x86

scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl (587.4 kB view details)

Uploaded CPython 3.7m macOS 10.13+ x86-64

scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl (596.3 kB view details)

Uploaded CPython 3.6m Windows x86-64

scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl (492.0 kB view details)

Uploaded CPython 3.6m Windows x86

scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl (587.4 kB view details)

Uploaded CPython 3.6m macOS 10.13+ x86-64

scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl (596.3 kB view details)

Uploaded CPython 3.5m Windows x86-64

scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl (492.2 kB view details)

Uploaded CPython 3.5m Windows x86

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1b220ede43b722d7d74b51f388f4bb292ed3b1c383ad7838ab936109a8f8c4ce
MD5 634a731e905e82e88e419047e31dc1a4
BLAKE2b-256 59c90be491e5d4be13897f0d8b6912ed1e9d3300a69443db904870ef6fe52d14

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 646.0 kB
  • Tags: CPython 3.8
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 4f7f1d85ad72a7c463eb03cd7e5f1b26b6ae3ad46c4706040d55b89f1a7e1d2a
MD5 0c147c20c3e04a735456856b96ef3174
BLAKE2b-256 f3ecc6abb86480911b3a7dd4eedb7e84d1515071e870b8847c6d09f07bbc4ecd

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 591.2 kB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 dc5f8663912fb4d2d71060ca2fc09aa16b2e5f5abb9c0713e10f24b075aa2adb
MD5 4c19a7f1cc5e8d0b6db12d7c16234689
BLAKE2b-256 10eccc5c4d21f1d27d462d2e5c3a5b421a6b71844c6a655564ea1cad16644cff

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 598.5 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4dd3b6284f616036ca2615f345e30a3b9a4a149be7ad8583a2eaa480b63d9a30
MD5 b81d90212bd39ec4b681122840cf832a
BLAKE2b-256 525361188c1c078ff79d469d5a0378aea4766a8fb60c6fd2696f3723483043e4

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 510.6 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 5defefb0d49e2fe9e08006d12812591203efb20523d80340ec54683478c2992c
MD5 1d96103fb254c8d79383ca076649a7b4
BLAKE2b-256 ce3344b663cf550e4a2f15fba27e0746f95539ffea24a50af01713b40c9d707f

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5b5e3729475dcdc802d58794d5a947be8b402b53b2f4defbb98c48edbbe1c17f
MD5 71fb946b0f31f6d4cbce9cfaf75001f9
BLAKE2b-256 4da706585ab218f1d459f248388342e23cdf1e93dd1f81885b53ab552beed62b

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 646.8 kB
  • Tags: CPython 3.7m
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 884e714e35bd1aa902145dc2459b372ee4003fdf5c108cde1c495cd16e0f13cf
MD5 416f80e8aabf801f6d7f97e9a9df1bb3
BLAKE2b-256 8cdf0b57c8f4523f634398180f29499ad6fd84e8a5696ca6a2449b82718663c7

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 587.4 kB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a6e0b00301686388036be9fbbdaf6f807c3f517030314a212be14c7b5e525c79
MD5 6703bad458173fb6041ee93517217d66
BLAKE2b-256 81a4f0faafb92dc624486866bbb11d569b7a24d542bdeac4efc450ae3f7a02ed

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 596.3 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 20b886268c028ad6e660fd84763f0df9be5a75db8edc33fc832a8c6626efc039
MD5 6d7f7d6047d2a7d80e7df41cc761ad34
BLAKE2b-256 80c60983d9b17a4b200a9ef07930edbf17f1f262495eb79069b27c89eeeba4f1

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 492.0 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 b093854043a6a60aa08c580723aa2209c395c0d9b0c0cd1caa194dfce8715ef9
MD5 a1f1a2c875cd0941115dc42388f28b09
BLAKE2b-256 ff80f491aec2240c3401bfae11b5c5557901f16d6c18819b83231af08b5b511a

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a0b30d782c1949cfb3a499b7fe3bb48b23b2189b4220b65798a465b7200f21a0
MD5 d2d944feb79fb609df70aeda34736eb8
BLAKE2b-256 e572ba408b9b4aea47a538c5060055b2036cd4739cb8793fa920d4421e7d9044

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 646.8 kB
  • Tags: CPython 3.6m
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 b34835d2acef8d6197d7333e045650fc0e4804f161f3c8928298d878f1d42745
MD5 338a4ed54e2bcd0fa5fdd11c2f76bf5a
BLAKE2b-256 2a99a51d0c054b615d5eb02f41ce6bc8eae4e462f0d45fcf22602ff102271a0f

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 587.4 kB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e7fad7e764ded913227c6e5bd7c429d127f5a8346f88fbb168c0548da767c4fd
MD5 0d1adf100a94b29288843a653a5b77a2
BLAKE2b-256 6d946ddbaa3f7fcf1c6d65c4ea8ea28851dab620015a7013a789448396cedfbe

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 596.3 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 d4dfe5191defb4a606a23881e42762cc81da62627e190ebecd683d0f5e7566ea
MD5 8f77aacb32af0cdfc82c01e080472fa2
BLAKE2b-256 5356727492c3bd8976e92b0467563a8ac6b2e4c7c90f797a73535536337c4074

See more details on using hashes here.

File details

Details for the file scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl.

File metadata

  • Download URL: scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 492.2 kB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using 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

File hashes

Hashes for scikit_surgerypclcpp-0.3.0-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 e8274d9b4b423de86a6d62acf9af05a97b21038b99bfe33f2dad30c76813674c
MD5 fb927f66cfde2388e9b5fd22c267d7e4
BLAKE2b-256 9832a514b8f7d87736ffbe216127b8b4441da8af8fbd5bb19e67b075f1a37c73

See more details on using hashes here.

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