OpenCV的相机校准从一个对象得到两个不同的结果

时间:2014-01-27 09:24:27

标签: c++ opencv camera-calibration

我使用8x8棋盘用OpenCV校准我的相机;但我有一些奇怪的结果:

我尝试用两张棋盘照片校准相机,对于其中一张,未失真的照片是正确的,但另一张的角落是拉伸的:

chessboard photos

谁能告诉我为什么我会得到这些好奇的结果?我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:4)

尝试使用更多图像,电路板方向不同。我会使用至少10.此外,一定要移动板以获得遍布视野的点。

答案 1 :(得分:2)

第一张图片:它几乎与图像平面平行。在这种情况下,图像中的消失点很难被观察到,因此对相机内在函数的约束是模糊的。

  

从建筑场景图像中的消失点进行相机校准,BMVC(1999),   通过 R Cipolla,T Drummond,D Robertson

此外,失真校正仅在没有观察数据的区域(沿着图像的边界)是错误的。这告诉我们校准模型在外推时是坏的但是在插值方面很好。这是过度拟合的典型例子。

我的猜测是,在第二张图像中,由于更好的深度方差,内在函数受到更好的约束。对内在函数的约束允许使用可用数据更好地估计失真。