This software register two surface meshes by iterative closest point method.
The program includes both GUI and commandline interface. IO supports STL,VTP and VTK format.
CLI is under development.
You may found pre-compiled binary here
Required Packages:
- CMake
- VTK
- ITK
- Qt 5
- Run CMake and specify ITK, VTK, Qt build folders when requested.
- Generate Projects (MSVC solution/ UNIX Makefiles)
- Compile and Run
Compilation tested on Windows 10 with MSVC 2015. Test on your own for other platforms and compilers.
Registration initialization is specified by user matrix displayed in the 4x4 matrix table. User may alter the transformation directly on the matrix table or by changing the sliders.
The surface first passthrough the initial transform matrix, then registered by following algorithms:
-
Iterative Closest Point (ICP)
Users may refer to the documentation here. Recommended for large surface registration.
-
Principal Component Analysis / Iterative Closest Point (PCA-ICP)
PCA is adopted for initialization then implement ICP registration. Suitable for asymmetric surfaces. Much computation expensive than method 1. Recommended for registering surfaces with small number of points.
-
Iterative Closest Point by ITK (ITK-ICP)
ICP implemented by surface points as fudicial landmarks. Generally faster method than PCA-ICP but converge speed is inconsisent for same surface pairs. Recommended for registering surfaces with small number of points. Users may refer to the documentation here
Available in GUI mode with one-shot calculation to visualize localized inter-surface distance. The colormap will be removed whenever the source is moved.
Test surfaces could be found in data folder