Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何对齐(注册)和合并点云以获得完整的三维模型?_Opencv_Point Cloud Library_Point Clouds_Stereo 3d_Ransac - Fatal编程技术网

Opencv 如何对齐(注册)和合并点云以获得完整的三维模型?

Opencv 如何对齐(注册)和合并点云以获得完整的三维模型?,opencv,point-cloud-library,point-clouds,stereo-3d,ransac,Opencv,Point Cloud Library,Point Clouds,Stereo 3d,Ransac,我想得到一些真实word对象的3d模型。 我有两个网络摄像头,使用openCV和SBM进行立体对应,我得到场景的点云,通过z过滤,我只能得到对象的点云。 我知道ICP对这个紫玫瑰有好处,但它需要点云进行初始良好对齐,因此它与SAC结合以获得更好的结果。 但是我的SAC健身评分太大了,比如70或40,ICP也没有给出好的结果 我的问题是: 如果我只是在相机前面旋转对象以获取点云,对ICP来说可以吗?要获得好的结果,旋转角度必须是多少?或者,也许有更好的方法拍摄物体的照片,以获得三维模型?如果我的点

我想得到一些真实word对象的3d模型。 我有两个网络摄像头,使用openCV和SBM进行立体对应,我得到场景的点云,通过z过滤,我只能得到对象的点云。 我知道ICP对这个紫玫瑰有好处,但它需要点云进行初始良好对齐,因此它与SAC结合以获得更好的结果。 但是我的SAC健身评分太大了,比如70或40,ICP也没有给出好的结果

我的问题是: 如果我只是在相机前面旋转对象以获取点云,对ICP来说可以吗?要获得好的结果,旋转角度必须是多少?或者,也许有更好的方法拍摄物体的照片,以获得三维模型?如果我的点云有一些洞可以吗?对于良好ICP,SAC的最大可接受适合度得分是多少?对于良好ICP,SAC的最大适合度得分是多少

我的点云文件示例:
我的建议和经验是,您已经有了rgb图像或灰色图像。ICP是优化点云的一个很好的应用程序,但在对齐点云时存在一些问题

首先从rgb里程计开始(通过对齐点云(彼此旋转)的要素点),然后使用并学习ICP如何与前面提到的点云库一起工作。让rgb功能为您提供预测,然后尽可能使用ICP优化预测

当此应用程序工作时,请考虑良好的体能分数计算。如果所有工作正常,则使用中继版本的ICP并优化参数。完成这一切之后,您的代码不仅速度快,而且出错的错误率也很低

下面的帖子是解释哪里出了问题

使用ICP,我们仅使用几何信息来细化此转换。但是,此处ICP降低了精度。结果是,ICP尝试匹配尽可能多的对应点。在这里,屏幕后面的背景在两次扫描中比屏幕本身有更多的点。然后,ICP将对齐云,以最大化背景上的对应关系。然后屏幕未对齐


如果知道对象在录制之间旋转的角度,可以将反向旋转应用于相应的点云。这应该给你一个足够好的ICP起点,这样你就不需要SAC了。对于录制之间的旋转角度:您必须通过反复试验来确定。您可以从旋转20度开始,这将为ICP提供足够的重叠。然后你可以试着增加角度,这样你就不用经常扫描了。@HenningJ:好的,谢谢,但是如果我不知道角度怎么办?我用手手动旋转,不知道角度。在ICP中我应该在哪里设置角度?在将点云输入ICP之前,必须旋转点云。对于角度:你可以猜出来。如果你得到了接近正确的结果,这对于ICP来说就足够了。为了验证它是否有效,您可以在应用ICP之前将两个点云可视化在一起,或者手动对齐它们。@HenningJ:我试试您说的。但是我想要完全自动的点云对齐,不需要调整角度,这是可能的吗?我不想干体力活,当然可以。我只是喜欢从小处做起并以此为基础。其中一个PCL教程听起来很像你想要做的:谢谢你的回答,我尝试了小角度旋转,ICP的结果很好,fitnes分数约为0.02-0.05,但是当我对齐所有这些点云以获得模型时,我得到了非常糟糕的结果。我试着用不同的fueauture描述符用sac来表示初始的gues,但没能得到好的初始gues。正如我看到的,大多数pcl特征描述符不使用颜色信息。你建议我做什么?如果你需要,我可以分享我的exampe pcd数据库。不要看fitnis分数,试着使用PCL的主干版本:谢谢你的回答。我尝试了这些代码,但在第一步转换Nan值后,有一个函数可以删除这些值,谷歌搜索,还有函数名,别忘了需要计算法线