1 Registration相关
源码:
o3d.registration.TransformationEstimationPointToPlane()
等一系列带有o3d.registration的代码段
错误提示:
AttributeError: module ‘open3d’ has no attribute ‘registration’
错误原因:
open3d版本问题,新版的写法不是o3d.registration
更改为:
o3d.pipelines.registration.TransformationEstimationPointToPlane()
2 TransformationEstimationPointToPlane()相关
源码:
icp_coarse = o3d.pipelines.registration.registration_icp(
source, target, max_correspondence_distance_coarse, np.identity(4),
o3d.pipelines.registration.TransformationEstimationPointToPlane())
错误提示:
TransformationEstimationPointToPlane and TransformationEstimationColoredICP require pre-computed normal vectors for target PointCloud.
错误原因:
需要进行法向量的计算,但目前的解决方法可能不是最优,只能保证不再跳出Error
在首个带有TransformationEstimationPointToPlane()的函数前加上:
target.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.08, max_nn=30))
这里radius的值默认为0.01,不过0.08对于我的模型效果较好