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

时间:2015-02-05 13:30:06

标签: opencv camera-calibration

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

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

1 个答案:

答案 0 :(得分:0)

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

也就是说,您可以使用R行和C列的任何模式。 如果每个块都是1厘米或1米也没关系。

您向calibrateCamera函数提供的唯一内容是objectPointsimagePoints

这些参数的数组尺寸(尺寸)对应于图案的角数。

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