如何更改 OpenCV 中的默认棋盘块大小
How do I change the default checkerboard blocksize in OpenCV
我目前正在试验 OpenCV 的校准工具箱,我正在使用默认的棋盘图案来校准相机。我想使用更大的棋盘块,这样我就可以站在离相机更远的地方,而不影响 OpenCV 检测角点的能力。
据我了解,OpenCV 已使用默认块大小值进行预编程。我的问题是:有没有办法在代码中更改此默认块大小值?我会在哪里改变这个? TIA
OpenCV 不会对图案的物理尺寸或图案尺寸做出任何假设。
也就是说,您可以有任何具有 R 行和 C 列的模式。
每个块是 1 厘米还是 1 米也没有关系。
你给 calibrateCamera
函数的唯一东西是 objectPoints
和 imagePoints
.
这些参数的数组维度(大小)对应于图案的角数。
objectPoints
应该包含棋盘角的 3D 坐标(好吧,在您的情况下是平面坐标,通过设置 Z=0)。这些角应该缩放到棋盘的物理尺寸。也就是说,如果一个角具有行列索引 (3,1)
并且每个块边为 3 厘米,则 3D 坐标将为 (0.09, 0.03, 0.00)
.
我目前正在试验 OpenCV 的校准工具箱,我正在使用默认的棋盘图案来校准相机。我想使用更大的棋盘块,这样我就可以站在离相机更远的地方,而不影响 OpenCV 检测角点的能力。
据我了解,OpenCV 已使用默认块大小值进行预编程。我的问题是:有没有办法在代码中更改此默认块大小值?我会在哪里改变这个? TIA
OpenCV 不会对图案的物理尺寸或图案尺寸做出任何假设。
也就是说,您可以有任何具有 R 行和 C 列的模式。 每个块是 1 厘米还是 1 米也没有关系。
你给 calibrateCamera
函数的唯一东西是 objectPoints
和 imagePoints
.
这些参数的数组维度(大小)对应于图案的角数。
objectPoints
应该包含棋盘角的 3D 坐标(好吧,在您的情况下是平面坐标,通过设置 Z=0)。这些角应该缩放到棋盘的物理尺寸。也就是说,如果一个角具有行列索引 (3,1)
并且每个块边为 3 厘米,则 3D 坐标将为 (0.09, 0.03, 0.00)
.