Operating system: Windows 10
Slicer version: 4.11.20210226 r29738 / 7a593c8
Expected behavior:
I am trying to redo an example of the SlicerMORPH workshop (S_2020/README.md at master · SlicerMorph/S_2020 · GitHub). Data can be loaded in the ALPACA module, the “subsampling” step works too, and the points are visualized. Next the “rigid alignment” should work.
Actual behavior:
But the “rigid alignment” does not work / start. Instead the following errors is shown:
Traceback (most recent call last):
File “C:/Program Files/SlicerVersions/Slicer 4.11.20210226/NA-MIC/Extensions-29738/SlicerMorph/lib/Slicer-4.11/qt-scripted-modules/ALPACA.py”, line 513, in onAlignButton
self.transformMatrix = logic.estimateTransform(self.sourcePoints, self.targetPoints, self.sourceFeatures, self.targetFeatures, self.voxelSize, self.skipScalingCheckBox.checked, self.parameterDictionary)
File “C:/Program Files/SlicerVersions/Slicer 4.11.20210226/NA-MIC/Extensions-29738/SlicerMorph/lib/Slicer-4.11/qt-scripted-modules/ALPACA.py”, line 1048, in estimateTransform
parameters[“distanceThreshold”], parameters[“maxRANSAC”], parameters[“maxRANSACValidation”], skipScaling)
File “C:/Program Files/SlicerVersions/Slicer 4.11.20210226/NA-MIC/Extensions-29738/SlicerMorph/lib/Slicer-4.11/qt-scripted-modules/ALPACA.py”, line 1147, in execute_global_registration
], registration.RANSACConvergenceCriteria(maxIter, maxValidation))
TypeError: registration_ransac_based_on_feature_matching(): incompatible function arguments. The following argument types are supported:
1. (source: open3d.open3d_pybind.geometry.PointCloud, target: open3d.open3d_pybind.geometry.PointCloud, source_feature: open3d::registration::Feature, target_feature: open3d::registration::Feature, max_correspondence_distance: float, estimation_method: open3d.open3d_pybind.registration.TransformationEstimation = registration::TransformationEstimationPointToPoint without scaling., ransac_n: int = 4, checkers: List[open3d.open3d_pybind.registration.CorrespondenceChecker] = [], criteria: open3d.open3d_pybind.registration.RANSACConvergenceCriteria = registration::RANSACConvergenceCriteria class with max_iteration=100000, and max_validation=100) → open3d.open3d_pybind.registration.RegistrationResult
As an information:
List item Extension “Sandbox” is not installed since it can´t be found in the extension manager
This is due to a change in open3d (library we use for point cloud registration) versions. If you uninstall and reinstall SlicerMorph, this should be fixed (it should automatically update the open3d to the correct version).
First off, Auto3Dgm has nothing to do with a ALPACA. They are separate modules and they do not work together or depend each other. They serve different functions as well.
There is currently an issue with the stable and open3d. If you want to use ALPACA, you have to options:
List item preinstalled stable Slicer works; slicerMorph and ALPACA are running too; in the Extension there is also now the SandBox extension installed! Previously SandBox was not available in the ExtensionManager
List item slicerMorph is not available in the ExtensionManager of the the latest preview version of 3DSlicer
For now I will work with the precompiled version of Slicer; as long as slicerMorph is not available for the latest preview version.