本文图片来自下面两处链接,感谢原文作者!
参考链接1
参考链接2
一、概述
常听到的RGB-D相机是指带有彩色信息的3D相机,其输出的每个点包含了XYZ三轴坐标和彩色信息(RGB三个通道的值)。从硬件上来看,可以由一个能测深度的传感器结合一个2D的彩色相机构成。那么如何由一张彩色图片结合其对应的“深度图”来重建一张3D图片呢?首先解释一下什么是深度图,从图片维度上来看,它是一张2D图片,与“RGB彩色图片”尺寸一致,只不过每个像素p(x,y)对应的灰度值代表了物体上某个点到相机中心点的垂直距离。下面我们要讨论的就是由一张2D的彩色图片结合其对应的深度图来求一张3D点云图。或许你会疑惑这有什么用呢?RGB-D相机本身输出的不就是点云图吗?为何自己要大费周章地重新做这件事情呢?因为在实际使用3D相机的过程中,你可能要利用其输出的2D图片做一些2D算法的检测(显然是因为有些检测用2D算法更加有用高效,比如使用opencv里的算子),然后将2D的点重新映射到3D的点云上进行表征,这就需要使用下面的方法帮助你了。
二、原理
如上图所示,已知实际场景中的点M在相机平面上的成像为点Xm,从RGB图像中可以得到Xm的二维坐标p