openGL 基于单幅图片的三维重建 100分,该怎么处理

openGL 基于单幅图片的三维重建 100分
小弟是OPENGL初学者,现在在做关于利用OPENGL的三维重建问题。

前提是给定图像和图像的相机参数,然后进行三维重建。给定的图像是室内场景,主要是对墙壁和地面的分离和三维重建。
图像:





相机参数:
  fc: [1.5178e+003 1.5249e+003]
  cc: [665.0545 472.1492]
  kc: [-0.2132 -0.0949 -0.0019 0.0013 0.7279]
  alpha_c: 0
  nx: 1280
  ny: 960
  KK: [3x4 double]

参考文献是“A dynamic Bayesian network model for autonomous 3d reconstruction from a single indoor image”中的第二节。以下是小弟翻译的:
  2.背景材料
在这篇文章中,我们专注于通过移动摄像机器人看到的、有代表性的室内场景的三维重建。我们对相机作出一下假设:
1.图像以透视投影获得,使用已标定的相机,即已知标定矩阵K。因此,如图3所示,三维世界中的Q点投影于图像中像素坐标q(表示为齐次坐标))当且仅当:Q∝K-1q (这里-1是-1次方) (1)
2.图像中包含对应于N个方向的N个灭点,其中之一垂直于地面(例如,在曼哈顿世界里所有表面都是正交的,N=3。)
3.场景包含一个水平地面以及多个竖直墙面(“地面-墙”模型)。
4.该相机的垂直轴垂直于地平面,并且地板在图像比较下面的部分。
5.该相机原点在距离地面的已知的高度。
对于许多室内场景,可以使用“曼哈顿世界”假设(即只包含垂直水平的环境),并从三个灭点的位置估算相机标定参数K。此外,一个三维空间中地板平面的法相向量的精准估算可以用类似的方式获得,因此任何相机垂直轴的小偏差可以很容易的得到修正。因此,在曼哈顿世界,它仍然可能生成重建即使假设1和4是不成立的。当现场包含许多人造物体时假设2往往能近似的满足。最后[20,9]的工作表明,假设3常常会被合理的用于室内和室外场景重建。
在室内的图像中,在如上假设前提下,给出图像中每一列像素的地板边缘位置就能够完全确定整个场景的3d几何信息。这个是一个透视几何的直接结果。现在我们描述如何重建每个图像像素的三维位置


首先,通过透视投影,一个在三维场景中Qk的位置对应在图像像素qk的位置必须满足:
Qk=αk K-1qk (-1是-1次方 小k是角标) (2)
因此,Q必位于通过相机光心的该指定光线上。此外,如果水平面上的一点有法向nfloor,那我们有 
dfloor = −nfloor • Qk = −αk nfloor • (K-1qk) (3)
其中dfloor是已知的相机距地面的高度。因此,地面的像素(地面中点的位置低于地面分界线)可以准确的确定。
至于图像中位于第j列并且处于墙面部分的点qk,它的三维位置可以很容易地被确定,因为它的位置在始于已知三维点Qbj的竖直片段上,这里Qb(j)是图像中第j列的地面边缘点,只需求解如下的线性方程:这结果会处理下面的一些线性方程式:
Qb(j) + λknfloor = Qk = αkK−1qk, (-1是-1次方 小k是角标) (4)
变量和λk和αk需要我们解决求解的。这样我们就可以重建图像中所有剩余的点的三维位置。
上述过程需要已知图像上每一列的地面边缘。


我一时不知道如何入手,想请教高手。该参考些什么?做哪些工作?
如果有代码最好··
QQ:346365459 Email:346365459@qq.com


------解决方案--------------------
两幅就简单了找到每个点的变化距离 越短的越远


------解决方案--------------------
单幅只有特殊情况 如果前面是张透视的画就不行了还是双幅
机器人用位置稍微变化的两幅就行了
------解决方案--------------------
帮顶~~~~~~~·