3

我在 OpenCV 论坛上发布了这个,但到目前为止还没有回复,所以在这里尝试。

2.4.0 参考手册的第 352 页有这个注释:

注意:如果您使用非正方形 (=non-NxN) 网格并 findChessboardCorners() 进行校准,并且 calibrateCamera 返回错误值(零失真系数,图像中心非常远离(w/2-0.5,h/2- 0.5),和/或 fx 和 fy 之间的巨大差异(10:1 或更大的比率)),那么您可能使用 patternSize=cvSize(rows,cols) 而不是使用 patternSize=cvSize(cols,rows) infindChessboardCorners() 。

这让我很困惑。是什么定义了棋盘上的行与列?毕竟,棋盘在收集数据集以供 calibrateCamera 使用的同时旋转和移动。

什么是很远?我有一个非方形棋盘,1292x964,1/3 格式,4 毫米非球面镜片;在全宽时,我得到:cx =639 和 cy=550。理想情况下,应该是 1292/2 = 646 和 964/2= 457;

我为 cy 获得的 550 与预期的 457 是“大差异”吗?

我应该在 patternSize 中交换宽度/高度吗?如果是这样,这是否意味着我应该在校准期间限制棋盘的旋转,以保持棋盘行与列相对于相机成像器的概念?

谢谢,戴夫托马斯

4

0 回答 0