【发布时间】:2014-11-05 17:57:59
【问题描述】:
我正在尝试计算左右图像中的差异(像素差异)。 假设图像被校正(行对齐)并且主点已知并表示为 cx, cy(注意主点对于左右相机是不同的)。
假设我们在左图像 x_l 中有一个像素,在右图像 x_r 中有相应的像素。 如果我们使用原点为cx和cy的图像坐标,那么两个像素的视差简单为:disp = x_l - x_r
但是,如果图像坐标的原点位于图像的左上角(即在 OpenCV 中定义),在计算视差时是否需要考虑此偏移量 (cx)?还是我仍然可以使用 disp = x_l - x_r 来获得正确的视差?
这似乎是一个有点愚蠢的问题,但我确实感到困惑。 谢谢。
【问题讨论】:
-
计算两个图像中单个像素的视差不会给出可靠和准确的结果。图像中的一个像素错误可能会导致深度感知出现半米的错误。所以我强烈建议使用来自 opencv 的 BM/SGBM 算法,因为它们基于复杂的算法。如果您知道场景中对象的坐标,您可以将它们作为 ROI(感兴趣区域)提供给 StereoBM 类,以降低计算成本。但是将视差计算为简单的三角测量不会给你准确性。