我已经成功地使用 OpenCV 2.4.5 中的 cv::stereoSGBM 类创建了一个令人满意的视差图,具有 256 个不同的视差级别。如文档中所示,我已将所有视差值除以 16,但此最终地图不可能包含“真实”视差:如果我将 (x, y) 像素的水平维度添加到其计算的视差 (x + d),得到的坐标 (x + d, y) 在另一幅图像中对应一个完全不同的像素。
我猜这个问题源于我最初将stereoSGBM参数化为256个视差级别,但实际的最大视差(以像素为单位)要小得多。由于我真的不知道实际的最大差异,我不能相应地对由 stereoSGBM 计算的值进行归一化。
我需要实际的视差值来计算密集的立体对应(三角测量和 3D 重建所必需的)。