我正在尝试使用 OpenCV 3.1 在 C++ 中计算视差图。我使用 StereoSGBM 算法,我需要能够识别远距离和非常近的物体。因此我将 MinDisparity 设置为 -16 和 MaxDisparity 160。
相机现在已正确校准,但生成的视差图是从左侧切割的。切割量取决于 MaxDisparity 设置。
我会理解为什么近距离物体会发生这种情况。仅仅是因为一个图像上的像素在第二个图像上不可用。但这不会发生在更远的物体上。在这种情况下,对象在两个相机图像中都是完全可见的,但在结果视差图中不可见。
这个问题有什么解决办法吗?在高 MaxDisparity 设置的情况下计算所有可见区域的视差图?