双目测量中的将视差图重投影成三维坐标图
双目测距主要步骤如下:
-
左右两张图片 → 匹配 → 得到视差图
disp
; -
使用
cv2.reprojectImageTo3D(disp, Q)
将视差图 重投影 成三维坐标图 → 得到points_3d
-
什么是
points_3d
?points_3d = cv2.reprojectImageTo3D(disp, Q)
points_3d.shape == (H, W, 3)
-
它是一个 三维数组,每个像素位置上存储该像素对应的
(X, Y, Z)
空间坐标(以相机为坐标原点)。 -
假设你有一张 大小为 4x3 像素的图像,points_3d.shape = (4, 3, 3) # 高 4 行,宽 3 列,每个像素有 3 个坐标值
-
points_3d = [[[X00, Y00, Z00], [X01, Y01, Z01], [X02, Y02, Z02]],[[X10, Y10, Z10], [X11, Y11, Z11], [X12, Y12, Z12]],[[X20, Y20, Z20], [X21, Y21, Z21], [X22, Y22, Z22]],[[X30, Y30, Z30], [X31, Y31, Z31], [X32, Y32, Z32]] ]
你可以使用
points_3d[i, j, 0]
取 X 坐标,points_3d[i, j, 1]
取 Y,points_3d[i, j, 2]
取 Z。