推荐开源项目:简单的SLAM与机器人教程与编程实践-github
三维重建到底是怎么回事?已知什么数据?待求解哪些变量?
看下面这张图,一图解释如何根据照片进行三维重建。首先,三维重建就是根据把照片的像素点对应现实世界中某个点在相机坐标系下的三维坐标计算出来。一般我们可以通过深度相机或者双目视觉等方式获取目标物体离相机坐标系原点的距离 Z r e a l Z_{real} Zreal,这里的相机坐标系的原点就是相机的焦点。
所以现在我们已经知道了的数据有:“像素点A在照片坐标系中的位置 ( x i m g , y i m g ) (x_{img},y_{img}) (ximg,yimg)”、“照片离相机坐标原点的距离,即焦距 f f f”、“像素点A对应现实世界中那个点离相机的距离 z r e a l z_{real} zreal”。
我们需要根据上面这些信息求出:现实世界那个点在相机坐标系下的三维坐标 ( x r e a l , y r e a l , z r e a l ) (x_{real},y_{real},z_{real}) (xreal,yreal,zreal)。所以现在待求解的未知量是 x r e a l x_{real} xreal和 y r e a l y_{real} yreal。
如何根据像素点的位置,和真实物体离相机的距离来还原真实物体在相机坐标系中的坐标?
从上图很容易看出来我们可以利用相似三角形来根据