【发布时间】:2020-08-16 08:34:40
【问题描述】:
我想澄清一下 OpenCV 的 calibrateCamera 函数的参数。
功能是
cv.CalibrateCamera2(objectPoints, imagePoints, pointCounts, imageSize, cameraMatrix, distCoeffs, rvecs, tvecs, flags=0)
据我了解,“imagePoints”是平面校准图案中“检测到”的角。但我不明白 objectPoints 在帮助我们恢复 cameraMatrix 中的作用,以及它们的值的设置方式。
【问题讨论】:
-
世界 3D x,y,z 点
-
但是从示例中,我看到对象点通常是根据棋盘图案的尺寸来表示的。比如
[8,3,0],[8,2,0]等等等等。 -
是的,可能是这样,因为棋盘是一个平面,可以认为是在 z=0 平面上,所以所有点都有 z=0 坐标。
-
嗯,我觉得我没看懂,所以我会更深入地阅读理论。
-
检测到的角是图像中的棋盘角。对象点是 3D 世界中的检查点角。您可以自己选择坐标系,因此通常将坐标与 3D 平面对齐。您可以在 3D 中选择不同的平面,内在参数的结果应该不会有很大差异,但相机位置会有所不同。因此,如果您对所需的坐标系有所了解,请使用该信息。请记住,移动相机将得到与移动棋盘相同的投影(但相反)。