简体   繁体   English

Matlab三维重建

[英]Matlab 3D reconstruction

Recently, I have to do a project of multi view 3D scanning within this 2 weeks and I searched through all the books, journals and websites for 3D reconstruction including Mathworks examples and so on. 最近,我必须在这2周内完成一个多视图3D扫描项目,我搜索了所有书籍,期刊和网站,进行3D重建,包括Mathworks示例等。 I written a coding to track matched points between two images and reconstruct them into 3D plot. 我编写了一个编码来跟踪两个图像之间的匹配点,并将它们重建为三维图。 However, despite of using detectSURFFeatures() and extractFeatures() functions, still some of the object points are not tracked. 但是,尽管使用了detectSURFFeatures()和extractFeatures()函数,仍然没有跟踪某些对象点。 How can I reconstruct them also in my 3D model? 如何在我的3D模型中重建它们?

What you are looking for is called "dense reconstruction". 您正在寻找的是“密集重建”。 The best way to do this is with calibrated cameras. 最好的方法是使用经过校准的相机。 Then you can rectify the images, compute disparity for every pixel (in theory), and then get 3D world coordinates for every pixel. 然后,您可以纠正图像,计算每个像素的差异(理论上),然后为每个像素获取3D世界坐标。 Please check out this Stereo Calibration and Scene Reconstruction example. 请查看此立体声校准和场景重建示例。

The tracking approach you are using is fine but will only get sparse correspondences. 您正在使用的跟踪方法很好,但只会得到稀疏的对应关系。 The idea is that you would use the best of these to try to determine the difference in camera orientation between the two images. 我们的想法是,您将使用其中最好的一个来尝试确定两个图像之间相机方向的差异。 You can then use the camera orientation to get better matches and ultimately to produce a dense match which you can use to produce a depth image. 然后,您可以使用相机方向来获得更好的匹配,并最终生成密集匹配,您可以使用它来生成深度图像。

Tracking every point in an image from frame to frame is hard (its called scene flow) and you won't achieve it by identifying individual features (such as SURF, ORB, Freak, SIFT etc.) because these features are by definition 'special' in that they can be clearly identified between images. 逐帧跟踪图像中的每个点很难 (称为场景流),你不会通过识别各个特征(例如SURF,ORB,Freak,SIFT等)来实现它,因为这些特征根据定义是特殊的'因为它们可以在图像之间清楚地识别出来。

If you have access to the Computer Vision Toolbox of Matlab you could use their matching functions. 如果您可以访问Matlab的计算机视觉工具箱,则可以使用它们的匹配功能。 You can start for example by checking out this article about disparity and the related matlab functions. 例如,您可以通过查看有关差异和相关matlab函数的文章来开始。

In addition you can read about different matching techniques such as block matching, semi-global block matching and global optimization procedures. 此外,您还可以阅读不同的匹配技术,例如块匹配,半全局块匹配和全局优化过程。 Just to name a few keywords. 仅举几个关键字。 But be aware that the topic of stereo matching is huge one. 但要注意立体匹配的主题是巨大的。

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

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