繁体   English   中英

将3D点云分成较小的方向边界框

[英]Split up a 3D point cloud into smaller oriented bounding boxes

我正在使用C#WPF。

我有一段时间我正在寻找一种算法来解决我的问题。 可能它不是那么琐碎,而是进入3D图形。

我在3D空间中有一个2D表面(也可以用点云表示)。

我需要将这个表面分成较小的位,这应该适合特定的盒子(例如300 x 300 x 15)。

我正在寻找一种在3d中工作的算法,它不是轴对齐的,类似于最小的体积边界框,但是如果盒子大于特定的体积,它会将体积分成更小的盒子。

我怀疑OBB的优化问题和很多迭代,但我不知道如何解决这个问题。

图片说明了一点问题。 红色和黑色框不是强制轴对齐的,它们应该<或=最大框大小(大小而不是体积!)。

图片

谢谢大家的支持!

对于使用磁盘覆盖形状的情况,已知您的问题是NP难的:请参阅fe https://en.wikipedia.org/wiki/Geometric_set_cover_problem 我强烈怀疑你的封面问题的情况并不好。 因此,您必须求助于在线性或多项式时间内完成工作的近似精确算法。 根据您在解决方案中可以牺牲的条件,您可以使用已知解决方案完成不同的任务。 所以,如果你解释一下你是如何完成这项任务的,那么你想要解决的真正任务是什么呢?那么我们可以讨论哪些近似解决方案对你的案例来说足够好。

例如,如果您对具有次优大小和方向(但足够好)的定向框覆盖您的点集的次优(但足够好),那么您可以使用一些涉及生成epsilon-net的快速算法(参见fe https://en.wikipedia.org/wiki/%CE%95-net_(computational_geometry)https://en.wikipedia.org/wiki/Delone_set )和/或贪婪地将点集细分为子集为每个子集贪婪地近似一个足够好的定向边界框。

另外,我在实践中没有自己使用它,但如果我不得不考虑你的任务的近似解决方案知道你对解决方案的限制,我会想到https://arxiv.org/abs/1409.7425这是假设的作为一种框架方法,用于生成与您的任务类似的一系列任务的近似解决方案。 看一下,你可能会看到一些对你有用的东西,或者你可能会看到google准备使用解决方案的有用词汇。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM