void cv::reprojectImageTo3D(
InputArray disparity, //视差图像
OutputArray _3dImage, //映射后存储三维坐标的图像
InputArray Q, //重投影矩阵 通过stereoRectify得到
bool handleMissingValues = false, //计算得到的非正常值是否给值,如果为true则给值10000
int ddepth = -1 //输出类型 -1 即默认为CV_32FC3 还可以是 CV_16S, CV_32S, CV_32F
)
这里有个地方需要注意,如果获得视差图像是CV_16S类型的,这样的视差图的每个像素值由一个16bit表示,其中低位的4位存储的是视差值得小数部分,所以真实视差值应该是该值除以16。在进行映射后应该乘以16,以获得毫米级真实位置。