【发布时间】:2020-12-13 08:45:41
【问题描述】:
我正在开展一个需要校准相机的项目。如您所知,需要在 3D 世界中定义平面网格点并在图像平面上找到它们的对应关系。因此,第一个相机有以下 3D_grid 点:
mport cv2 as cv
import numpy as np
WPoints_cam1 = np.zeros((9*3,3), np.float64)
WPoints_cam1[:,:2] = np.mgrid[0:9,0:3].T.reshape(-1,2)*0.4
print(WPoints_cam1)
[[0. 0. 0. ]# world coordinate center
[0.4 0. 0. ]
[0.8 0. 0. ]
[1.2 0. 0. ]
[1.6 0. 0. ]
[2. 0. 0. ]
[2.4 0. 0. ]
[2.8 0. 0. ]
[3.2 0. 0. ]
[0. 0.4 0. ]
[0.4 0.4 0. ]
[0.8 0.4 0. ]
[1.2 0.4 0. ]
[1.6 0.4 0. ]
[2. 0.4 0. ]
[2.4 0.4 0. ]
[2.8 0.4 0. ]
[3.2 0.4 0. ]
[0. 0.8 0. ]
[0.4 0.8 0. ]
[0.8 0.8 0. ]
[1.2 0.8 0. ]
[1.6 0.8 0. ]
[2. 0.8 0. ]
[2.4 0.8 0. ]
[2.8 0.8 0. ]
[3.2 0.8 0. ]]
如上图所示,第一个网格(用于第一个相机)从定义的参考 3D_point (0,0,0) 开始,到点 (3.2,0.8 0) 结束0.4 的恒定偏移量和 9x3 尺寸
注意,所有的 Z 坐标都设置为 Z=0(Zhengyou Zhang 校准)
现在我的问题是,因为我需要定义第二个网格(用于第二个摄像头),它也指定义的 3D_坐标中心 (0,0,0),我需要定义一个从 (3.6,0,0) 开始并以 (6.8,0.8,0) 结束的网格,相同的偏移量为 0.4,尺寸为 9x3
我相信这很容易做到。但是,由于我的初学者经验水平,我无法开箱即用。
在此先感谢您的帮助和感谢。
【问题讨论】:
标签: python numpy opencv grid camera-calibration