sou*_*pso 6 c++ algorithm computer-vision point-cloud-library
我有两个使用Point Cloud Library 的3D 点云。一个是参考点云(我们称之为A),另一个是变形的(我们称之为B)。两个点云均取自表面上除边缘之外没有或非常微小特征的物体。这些点云A和B也对齐。
感谢帮助。
我不是这些方面的专家,所以这些大多是想法,而不是解决方案,我可能是错的。
但我天真的方法是基于两个网格的布尔运算/构造实体几何(另请参阅gamedev 中的这个问题)。如果计算A-B,您将得到包含 A 中但不包含 B 中所有内容的网格,或者换句话说:B 中缺失的部分。
但这种方法有两个问题:
因此,差异网格将包含实际缺失区域之外的许多小“体积”。您可以通过在布尔运算期间向 A 添加某种公差半径或对结果应用一些平滑或其他后处理来解决此问题。
另一种方法可能是不对网格进行布尔运算,而是对从点云创建的隐式函数(例如,使用移动最小二乘法)进行布尔运算,然后从生成的隐式函数(例如,使用行进立方体)创建网格。这可能是一个更强大的解决方案。
要创建网格图像,只需使用 OpenGL 或 DirectX 进行渲染即可。