【问题标题】:Why Stereo rectify an image为什么立体校正图像
【发布时间】:2020-02-24 12:23:11
【问题描述】:

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

  1. 校准立体相机
  2. 计算投影矩阵
  3. 对未失真的点进行三角剖分

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

P = K×[R|t]

来自 RtK 来自 stereoCalib / cameraCalib 函数。

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

欢迎更复杂的答案,因为我想我认为答案只是通过提供的方程式计算它,但我想更多地了解这个更正是关于什么的。

【问题讨论】:

  • 立体校准告诉您如何将一台摄像机的一个点转换为下一个摄像机的不同点。它允许您进行 3D 估计,因为您已对其进行了校准。不需要任何类型的估计。这样你就有了准确的 3D 表示,而不仅仅是猜测。如果你想要任何类型的精度,这是基本的(注意现在大多数系统如何将相机相互连接,以避免估计和校准)。
  • 在非线性优化的世界里,你总是只有猜测。我会非常小心使用 accurate 之类的词。
  • 除此之外,我什至没有声称 Stereo Calibration 是帖子中的估计(用术语清楚)。如果帖子本身具有误导性,请告诉我,我会尽力使其更清楚。
  • 我认为这与在极地几何中做数学更容易的事实有关,但我已经有太多年没有玩这个了

标签: matlab opencv camera-calibration triangulation 3d-reconstruction


【解决方案1】:

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

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

通过立体校正,您可以确保核线是水平的,并且对应点只能位于两个图像中的同一水平像素行上。这意味着您的通信搜索空间要小得多,因此问题变得容易处理。

如果这回答了您的问题,或者您是否需要更多指向正确方向的指示,请告诉我!

【讨论】:

  • 完全令人满意。谢谢你,先生。
猜你喜欢
  • 2014-07-30
  • 2011-07-24
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2012-11-09
  • 2016-10-13
相关资源
最近更新 更多