如何更改 OpenCV 中的默认棋盘块大小

How do I change the default checkerboard blocksize in OpenCV

我目前正在试验 OpenCV 的校准工具箱,我正在使用默认的棋盘图案来校准相机。我想使用更大的棋盘块,这样我就可以站在离相机更远的地方,而不影响 OpenCV 检测角点的能力。

据我了解,OpenCV 已使用默认块大小值进行预编程。我的问题是:有没有办法在代码中更改此默认块大小值?我会在哪里改变这个? TIA

OpenCV 不会对图案的物理尺寸或图案尺寸做出任何假设。

也就是说,您可以有任何具有 R 行和 C 列的模式。 每个块是 1 厘米还是 1 米也没有关系。

你给 calibrateCamera 函数的唯一东西是 objectPointsimagePoints.

这些参数的数组维度(大小)对应于图案的角数。

objectPoints 应该包含棋盘角的 3D 坐标(好吧,在您的情况下是平面坐标,通过设置 Z=0)。这些角应该缩放到棋盘的物理尺寸。也就是说,如果一个角具有行列索引 (3,1) 并且每个块边为 3 厘米,则 3D 坐标将为 (0.09, 0.03, 0.00).