opencv 的立体校准和视差图问题

时间:2021-04-06 15:02:37

标签: opencv calibration

我正在尝试校准两个摄像头并使用它们来获取视差图。 我有用 C++ 编写的代码,我使用的是 openCV。

我做什么:

1- 我用两个相机同时拍摄了一些不同位置和旋转的棋盘的照片(~30)。

2- 我使用这些照片通过 getOptimalNewCameraMatrix 函数获取两台相机的内在参数。

3- 之后,我使用函数stereoCalibrate、stereoRectify 和initUndistortRectifyMap 获取参数以应用图像与各自矩阵的变换。

4- 我使用重映射功能将转换应用于图像。

5- 当我得到正确的图像时,我应用 StereoSGBM 算法来获得视差图。

我的问题是,当我看到视差图时,我会看到类似下图的内容。我看到很多噪音。 with remap

如果我删除第 4 步,我会看到以下视差图。 without remap

我不明白这种行为,因为当我在第四步之后查看校正后的图像时,图像被正确校正,如果我计算与完美校正图像的差异,我什么也看不到。

谁能帮帮我?? 提前致谢。

0 个答案:

没有答案