最近,我必须在这两周内完成一个多视图3D扫描项目,并搜索所有书籍,期刊和网站进行3D重建,包括Mathworks示例等。我编写了一个编码来跟踪两个图像之间的匹配点,并将它们重建为三维图。但是,尽管使用了detectSURFFeatures()和extractFeatures()函数,仍然没有跟踪某些对象点。如何在我的3D模型中重建它们?
答案 0 :(得分:1)
您正在寻找的是“密集重建”。最好的方法是使用经过校准的相机。然后,您可以纠正图像,计算每个像素的差异(理论上),然后为每个像素获取3D世界坐标。请查看此Stereo Calibration and Scene Reconstruction示例。
答案 1 :(得分:1)
您使用的跟踪方法很好,但只会得到稀疏的对应关系。我们的想法是,您将使用其中最好的一个来尝试确定两个图像之间相机方向的差异。然后,您可以使用相机方向来获得更好的匹配,并最终生成密集匹配,您可以使用它来生成深度图像。
逐帧跟踪图像中的每个点都是 hard (它称为场景流),你不会通过识别各个特征(如SURF,ORB,Freak,SIFT等)来实现它。因为这些特征在定义上是“特殊的”,因为它们可以在图像之间清楚地识别出来。
答案 2 :(得分:0)
如果您可以访问Matlab的计算机视觉工具箱,则可以使用其匹配功能。 例如,您可以查看有关disparity和相关matlab函数的文章。
此外,您还可以阅读不同的匹配技术,例如块匹配,半全局块匹配和全局优化过程。仅举几个关键字。但要注意立体匹配的主题是巨大的。