由于课题需要,最近将一个之前写过的点云配准程序移植到另一个基于Qt的工程中,以方便人机交互和可视化。但是移植之后发现配准误差非常大,与我之前程序的结果相去甚远。在Qt窗口中输出点云信息没有发现异常,各项配准参数也完全一致,排查了一天没有发现问题所在。
后来猜测会不会是因为配准操作处于Qt主线程中导致配准的资源不足,对配准中的近邻搜索等计算量较大的步骤造成了影响。于是写了一个新线程专门用于处理配准,问题果然解决。
但要注意:在新线程中只能做配准计算的相关工作,不能对Qt界面的显示进行更新操作,这部分工作应该于配准结束后在主线程中处理。