如何合并两个不同视点的点云

发布于 2024-12-05 02:22:31 字数 210 浏览 0 评论 0原文

我的 3D 扫描仪从不同角度扫描某个物体,最终获得 360° 表面重建。每次扫描的点云具有不同数量的点,需要合并。在我想用于重建的 PCL 库中,有一些算法可以使用一些迭代最近点方法来合并具有相同数量点的点云。

我想避免找出旋转轴。当然,知道它的位置和旋转角度,我可以将一朵云的所有点乘以旋转矩阵,然后合并云。有没有办法在不知道旋转中心的情况下合并它们? (甚至可能从算法中得到它的位置?)

My 3D Scanner scans some object from different angles to get a 360° surface reconstruction in the end. The point clouds of each scan have different amounts of points and need to be merged. In the PCL library, that I would like to use for the reconstruction, there are algorithms for merging point clouds with the same amount of points, using some iterative closest point method.

I would like to avoid finding out the axis of the rotation. Of course, knowing it's position and the angle of the rotation, I could just multiply all my points of one cloud with the rotation matrix and then merge the clouds. Is there any way to merge them without knowing the center of rotation? (And maybe even get it's position out of the algorithm?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜雨飘雪 2024-12-12 02:22:31

嗯,这似乎是一个老问题,可能对其他人有帮助:)
如果在没有配准的情况下合并点云是没有意义的。因此应该采用ICP。
然后就可以对对应的点云进行变换,然后进行合并。
应该是直截了当的。

Well, it seems an old question, just may be help to other people :)
It won't make sense if you merge the point clouds without registration. Thus ICP should be employed.
Then you can perform transformation to the corresponding Point Cloud, and merge them after that.
Should be straight forward.

爱要勇敢去追 2024-12-12 02:22:31

我能够弄清楚如何连接两个不同大小的云的唯一方法是将较小的云填充到与较大的云相同的大小。我通过测试哪个最大,然后用较小的云填充临时云,然后用 0 0 0 填充余额来做到这一点。

我看到的另一种方法是创建一个包含所有 0 0 0 点的临时云,然后填充较低的云临时云的一部分与较小的云。

我认为后者更容易实现,但前者更快。我用的是前者。

The only way that I have been able to figure out how to concatenate clouds of two different sizes is to pad the smaller cloud up to the same size as the larger cloud. I did it by testing which is largest then filling a temporary cloud with the smaller cloud and then filling the balance with 0 0 0.

The other way that I see is to create a temporary cloud with all 0 0 0 points and then filling the lower portion of the temporary cloud with the smaller cloud.

I think the latter is easier to implement but the former is faster. I used the former.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文