为什么立体校正图像

Why Stereo rectify an image

我正在尝试根据从校准的立体相机图像中获取的立体对应重建棋盘的位置。根据this answer,我经历了整个过程

  1. 校准立体相机
  2. 计算投影矩阵
  3. 三角化未扭曲的点

我不明白一个步骤,那就是 为什么 我应该在 stereoCalibration 期间使用 openCV 校正立体图像 cv2::stereoRectify()或 Matlab 的 rectifyStereoImages。或者更好:如何 我应该得到投影矩阵 - 通过立体校正或简单地作为

P = K×[R|t]

来自 RtK 来自 stereoCalib / cameraCalib函数。

根据我的理解,立体校正对于制作深度图很重要,但由于我只使用三角测量进行 3D 估计,所以我不确定它在这种情况下是否有用。我有点困惑,因为我发现的每个立体声校准演示都包含这个校正步骤。

欢迎更复杂的答案,因为我认为答案只是通过提供的方程式计算,但我想更多地了解此修正的内容。

如果您已经知道两幅图像上哪些点相互对应,那么您是对的,则不需要立体校正。您只需对这些点进行三角测量即可获得 3D 坐标。

但是,如果您尝试从整幅图像估计深度图,则需要解决立体对应问题,即您需要为一幅图像中的每个点找到第二幅图像中的对应点。

通过立体校正,您可以确保对极线是水平的,并且对应点只能在两个图像中的同一水平像素行上。这意味着您搜索 space 对应关系的数量大大减少,因此问题变得容易处理。

让我知道这是否回答了您的问题,或者您是否需要更多指向正确方向的指示!