Open3D 15.1 报错 module ‘open3d‘ has no attribute ‘registration‘(跑LCD代码时报错)

Open3D 15.1 报错 module ‘open3d‘ has no attribute ‘registration‘(跑LCD代码时报错)

最近研究LCD源码,跑例程align_point_cloud.py
因为源码用老版本Open3D库报了错

 module 'open3d' has no attribute 'registration'

我的Open3D用着一直没毛病,所以大概率是版本变动了库文件路径
在Github上也有人出现了类似情况
GitHub
这老哥一语中的
在较新版本的Open3D中registration被放在了pipelines下面,所以调用时要把原来的

import open3d.registration

改成

import open3d.pipelines.registration

还有在15.1的较新版本中,即使修改过后还会报错:

TypeError: registration_ransac_based_on_feature_matching(): incompatible function arguments. The following argument types are supported.

又回Github里面找到了相似的问题,Open3D那边给出了这样的回复:
GIthub
这就说明函数本身的输入输出出现了变化:

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)

和LCD代码里面给出的参数进行比较之后发现只需要多加上一个布尔值输入Mutual Filter即可。

Code
在加入了一个True之后程序成功跑通。

猜你喜欢

转载自blog.csdn.net/qq_45912037/article/details/127792718