提问人:codingliketheresnoyesterday 提问时间:10/29/2023 最后编辑:codingliketheresnoyesterday 更新时间:11/8/2023 访问量:78
Unity 与 C 语言中已知对应关系的点云配准#
Point Cloud Registration With Known Correspondence in Unity with C#
问:
因此,我在名为 p1(x,y,z)、p2(x,y,z) 和 p3(x,y,z) 的物理对象(假设立方体)的扫描 3D 模型上有一组已知的点。
前面提到的物理对象在用户面前,用户将在物理立方体上点击相同的 3 个点(在任务 3 直通中),对应于 p1、p2、p3,即 p1'、p2' 和 p3'。不过,p1'、p2' 和 p3' 可能不是一个完美的正方形,因为用户只是一个人。如何将扫描的 3D 模型移动到用户输入的物理模型的位置?
当然,我研究了像 Umeyama 的方法这样的点云配准技术,但对于我个人来说,这在 C# 中实现似乎非常复杂,尽管这里有一个 python 实现。有了这个解决方案,我实际上不知道如何使用生成的矩阵执行转换......寻找一个稍微简单的解决方案,我找到了另一个用 2 点来做到这一点的帖子。这让我想到,也许我可以对两个点(p1 和 p2)使用相同的算法,将其与 p1' 和 p2' 匹配,然后围绕 p1' -> p2' 迭代旋转模型,直到 p3 和 p3' 处于某种精确的位置。
答:
0赞
treep
11/8/2023
#1
在 Jonathan Selstad 的 MathUtilities 中查看 Unity 的 Kabsch 求解器。他还写了一篇关于它的博客文章。
请注意,该示例在 中不断调用求解器。如果只求解一次,则可以编辑方法以使用更多迭代。Update
extractRotation
上一个:点云中的这些暗点是什么?[关闭]
下一个:Spconv 是否支持插值操作?
评论