目标是从 KITTI 图像(数据集)中获得鸟瞰图,并且我有投影矩阵(3x4)。
有很多方法可以生成变换矩阵。对于鸟瞰图,我已经阅读了一些数学表达式,例如:
H12 = H2*H1-1=A R A-1=P*A-1 in OpenCV - 投影、单应矩阵和鸟瞰图
和 x = Pi * Tr * X 在kitti 数据集相机投影矩阵中
但这些选项都不适用于我的目的。
蟒蛇代码
将 numpy 导入为 np 导入 cv2
image = cv2.imread('数据/RGB/000007.png')
最大高度,最大宽度 = image.shape[:2]
M 有 3x4 尺寸
M = np.array(([721.5377, 0.0, 609.5593, 44.85728], [0.0, 721.5377, 72.854, 0.2163791], [0.0, 0.0, 1.0, .002745884]))
这里需要一个 3x3 维度的 M 矩阵
warped = cv2.warpPerspective(图像, M, (maxWidth, maxHeight))
显示原始图像和变形图像
cv2.imshow("原始", 图片)
cv2.imshow("扭曲", 扭曲)
cv2.waitKey(0)
我需要知道如何管理投影矩阵以获得鸟瞰图。
到目前为止,我尝试过的所有事情都会向我抛出扭曲的图像,甚至没有接近我需要的信息。
左侧显示了检测汽车的 3D(上)和 2D(下)图像。右边是我想要获得的鸟瞰图。因此,我需要获取变换矩阵来变换分隔汽车的框的坐标。