Package: scikit-surgerypclcpp
scikit-surgerypclcppscikit-surgerypclcpp implements image guided surgery algorithms, usingPCL, in C++ and wrapped in Python.scikit-surgerypclcpp is part of theSNAPPYsoftware project,
developed at theWellcome EPSRC Centre for Interventional and Surgical Sciences,
part ofUniversity College London (UCL).FeaturesSupport for Python Wheels, thanks toMatthew 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 viapcl::VoxelGridfilter.Removal of outlier points from point clouds viapcl::StatisticalOutlierRemoval.Filtering of points usingpcl::PassThroughfilter.Filter of points usingpcl::pcl::RadiusOutlierRemovalfilter.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 inCode/PythonBoost/sksLibPython.cppfor python method names, and in the containing folder,
to see header files with the method signatures.CaveatAs 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 intotravis_cmake_build.shandappveyor.ymland turn-DBUILD_TESTING:BOOL=ONIf 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=ONin 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.InstallingYou can pip install the latest Python package as follows:pip install scikit-surgerypclcppDevelopingCloningYou can clone the repository using the following command:git clone https://github.com/UCL/scikit-surgerypclcppBuild instructionsStill 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 readappveyor.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.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.Licensing and copyrightCopyright 2018 University College London.
scikit-surgeryopencvcpp is released under the BSD-3 license.
Please see thelicense filefor details.AcknowledgementsSupported byWellcomeand theEPSRC.The project was generated, usingCMakeCatchTemplateandCMakeTemplateRenamer.