我从最近的多个2d视图做了一些关于3d重建的研究。我所阅读的大部分内容都集中在基本矩阵,极线几何和该主题的其他理论原理上。让我们说给定两个图像,我知道如何计算对应于每个2d点的3d点。
我的问题是:
我知道可以使用MATLAB或OpenCV,但我没有找到任何讨论如何做的事情。
答案 0 :(得分:2)
检查OpenCV中的disparity map。您可以使用生成深度贴图(类似于您获得的深度贴图 - 比方说 - 一个Kinect但显然不太准确)。视差图中的每个像素表示基于用于生成地图的两个帧之间的差异到对象的距离。
有一个example in the OpenCV samples,您可以在其中了解它是如何完成的。
至于3D数据的表示,我建议使用PCL(点云库)或任何其他与点云一起工作的库,因为......嗯,这是一种现在的做法。点云允许您对空间数据应用各种算法(包括特征匹配,合并,转换等)以及生成网格的功能。例如PCL - 如果我没记错的话 - 至少有3种从点云生成网格的方法(NURBS模块遗憾地仍然是实验性的和错误的)。