我有两个使用点云库的三维点云。一个是参考点云(让我们称它为A),另一个是有缺陷的云(我们称之为B)。这两个点云都是从物体上取下来的,这些物体表面上没有或非常细微的特征,除了边缘。这些点云A和B也是对齐的。
帮助是值得感激的。
发布于 2014-01-29 19:05:49
我不是这些事情的专家,所以这些大多是想法,不是解决方案,我可能错了。
但是我的天真方法是基于这两个网格的布尔操作/ 构造实体几何 (也请参阅这个问题在gamedev)。如果计算A-B,您将得到包含A中的所有内容的网格(Es),但不包含B中的所有内容--或者换句话说:B的缺失部分。
然而,这种方法有两个问题:
因此,差异网格将包含许多小的“体积”以外的实际缺失区域。您可以通过在布尔运算期间将某种公差半径添加到A,或者对结果应用一些平滑或其他后处理来纠正这一点。
另一种方法可能不是在网格上执行布尔操作,而是对从点块创建的隐函数进行布尔操作(例如使用移动最小二乘),然后根据结果的隐式函数(例如行进立方体)创建一个网格。这可能是一个更有力的解决方案。
要创建网格的图像,只需使用OpenGL或DirectX呈现它。
发布于 2014-01-30 08:12:14
PCL提供了一些“空间变化检测”解决方案。
看看这个链接:变化检测
它使用八叉树结构(从点云构建)并比较这两种八叉树的差异。
发布于 2014-01-30 07:33:49
只要你的两种云都是有组织的(你从Kinect那里得到它们,AFAIK产生的云是作为规则点网格组织的),你就可以将它们转换成深度图像。只要你相信云是正确对齐的(你的Kinect是静止的,看着同一个场景),那么你就可以使用通常的图像处理技术,对深度图像进行处理,包括获取两幅图像之间的差值,平滑,使用某种阈值从差异图像创建掩膜图像。得到面罩图像后,将其应用于B云设置面罩外的所有点到NaNs (如这里的https://stackoverflow.com/a/17282917/1027013)和瞧,B中部分的3d图像不同于A。
虽然我知道这种方法在使用中,但我自己从未使用过,也从未与Kinect玩过。我猜想,由于噪音和小的地面振动,产生的面具也可能太吵,特别是在边缘和剪影点的场景,这是图像处理工具应用于深度面具来救援。
https://stackoverflow.com/questions/21433764
复制相似问题