我有两个空间图像,但我没有相机校准输入。如何通过使用 imread 读取两个图像来开发3D模型? 此外,我尝试遵循此代码,但这也需要相机参数。
http://in.mathworks.com/discovery/stereo-vision.html
我还试图想出一个3D稀疏建模,但它不起作用。
http://in.mathworks.com/help/vision/examples/sparse-3-d-reconstruction-from-two-views.html
我可以使用高斯滤波器或类似的东西从立体声对输入图像数据,然后匹配它们以进行部门估计。如果我得到深度,我可以制作3D模型。
请建议我可以快速完成哪些工作。
答案 0 :(得分:0)
首先,您不能准确地说出3D模型所需的内容。您是否需要欧几里德模型(即知道所有边的长度?)还是只需要缩放(度量重建)?
其次你对图像有什么了解?他们是在不同的时间点从同一台相机拍摄的吗?不同的相机?摄像机是如何安排的?有些特殊情况可能会使3D恢复更容易,但在一般情况下,如果没有相机校准,您将无法获得度量重建。
说过你可以尝试从消失点或[{3}}
上阅读this paper校准如果你知道相机的类型,有人可以获得足够好的校准参数 - 可以防止相机的质量。
这背后的几何形状并非微不足道,我们需要在推荐解决方案之前了解更多信息。
答案 1 :(得分:0)
问题在于,如果没有任何校准,你所能得到的只是一个未知的投射变换的重建。这意味着您将无法获得对象的绝对大小,并且您的角度将是错误的。最好的办法是校准你的相机。
如果你不能这样做,你可以使用estimateUncalibratedRectification
和disparity
功能获得部分路径。见example。一旦你有差异,你将不得不弥补假的相机参数,如焦距,光学中心和相机之间的距离,并编写自己的代码进行重建。同样,这将是一个新的投射重建。请参阅Bradsky和Kaehler的“学习OpenCV”。