我目前正在尝试使用OpenCV的校准工具箱,而我正在使用默认的棋盘图案来校准相机。我想使用更大的棋盘块,这样我就可以远离相机,而不会影响OpenCV检测角落的能力。
据我了解,OpenCV预先编程了默认的块大小值。我的问题是:有没有办法在代码中更改此默认的块大小值?我会在哪里改变这个? TIA
答案 0 :(得分:0)
OpenCV不会对图案的物理尺寸或图案尺寸做出任何假设。
也就是说,您可以使用R行和C列的任何模式。 如果每个块都是1厘米或1米也没关系。
您向calibrateCamera
函数提供的唯一内容是objectPoints
和imagePoints
。
这些参数的数组尺寸(尺寸)对应于图案的角数。
objectPoints
应该包含您的棋盘角的3D坐标(在您的情况下,通过设置Z = 0的平面坐标)。这些角落应缩放到棋盘的实际尺寸。也就是说,如果一个角有行列索引(3,1)
并且每个块边都是3厘米,那么3D坐标将是(0.09, 0.03, 0.00)
。