如果点云之间,旋转的角度非常大,或者平移的距离非常远, 常规的配准都会失效,这个时候,可以考虑手动给予配准算法一个初始值, 具体做法是手动在两个点云上,选取至少三个点, 这三个点在两个点云上表示的位置是一样的, 相当于我们手动把2个点云的映射关系告诉了配准算法。 需要注意的是,三个点的选取不要在一条线上, 尽可能距离的远一些, 形成一个大的三角形最好, 选取的位置在2个点云上尽量做到一致。
# coding:utf-8
import numpy as np
import copy
import open3d as o3d
def draw_registration_result(source, target, transformation):
source_temp = copy.deepcopy(source)
target_temp = copy.deepcopy(target)
source_temp.paint_uniform_color([1, 0.706, 0])
target_temp.paint_uni