我有一堆点位于垂直平面上。实际上,这个平面应该是完全垂直的。但是,当我将点云可视化时,垂直度有轻微的倾斜(接近 2 度)。目前,我只能计算这个倾向。关于其他错误,我认为没有变化或类似的东西。
所以,我想更新我的点数据的坐标,使它们位于垂直平面上。我想,我应该做一些转变。它可能仅通过沿 X 轴旋转。不知道会是什么。
我想,你明白我的问题。老实说,我数学很差。所以,请让我知道如何更新我的点坐标以位于确切的垂直平面上。
注意:因为我在 c++ 中实现这个并且有很多程序员对这些东西有很好的了解,所以我在 c++ 下发布了这个问题。
更新
如果我确切地说我到目前为止所做的事情;我有代表垂直对象+其周围事物的点云数据。(数据由移动的扫描仪收集,可能与正确的世界轴有轴偏差)。问题是,我不能确切地说我的数据是否存在错误。因此,我使用垂直平面对象(这也是我的数据中的主要对象)检查了这一点。实际上,该平面是真正垂直的。但是,当我通过移除异常值来拟合平面时,该平面并不是真正垂直的并且具有近 2 度的倾角。因此,我怀疑我的数据有一些错误。所以我想更新我的所有点云(包括平面上的点和代表其他对象的点),以便将特定的平面点精确地放置在垂直平面上。那么,我猜,所有的点都将更新到它们在现实中的正确位置。也就是说,所有 (x,y,z) 坐标都应该更新。
例如,请参考下图。
left-表示原始点云(如您所见,点本身不是垂直的),后线表示我拟合的垂直平面,红色是天顶线。如您所见,垂直平面有一个倾斜。所以,我想在正确的图中更新我的整个数据。然后,在更新后如果我再次适合一个平面(去除异常值),那么它与天顶线完全平行。请帮我。