Open3D 15.1 reports an error module 'open3d' has no attribute 'registration' (an error is reported when running the LCD code)

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.
GitHub
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:
GIthub
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.

Code
After adding a True, the program successfully ran through.

Guess you like

Origin blog.csdn.net/qq_45912037/article/details/127792718