Open3D 15.1 reports an error module 'open3d' has no attribute 'registration' (an error is reported when running the LCD code)
I recently studied the LCD source code and ran the routine align_point_cloud.py
because the source code reported an error with the old version of the Open3D library.
module 'open3d' has no attribute 'registration'
My Open3D has been used without problems, so there is a high probability that the version has changed the path of the library file.
Someone on Github has a similar situation.
This brother said that
in the newer version of Open3D, the registration is placed under pipelines. So call the original
import open3d.registration
changed to
import open3d.pipelines.registration
Also in the newer version of 15.1, even after modification, an error will be reported:
TypeError: registration_ransac_based_on_feature_matching(): incompatible function arguments. The following argument types are supported.
I went back to Github and found a similar problem. Open3D gave this reply:
This shows that the input and output of the function itself has changed:
open3d.pipelines.registration.registration_ransac_based_on_feature_matching(source,
target, source_feature, target_feature, mutual_filter, max_correspondence_distance,
estimation_method=TransformationEstimationPointToPoint without scaling., ransac_n=3,
checkers=[], criteria=RANSACConvergenceCriteria class with max_iteration=100000, and
confidence=9.990000e-01)
After comparing with the parameters given in the LCD code, it is found that only one more Boolean value needs to be input to the Mutual Filter.
After adding a True, the program successfully ran through.