Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV';摄像机校准_C++_Opencv_Camera Calibration - Fatal编程技术网

C++ OpenCV';摄像机校准

C++ OpenCV';摄像机校准,c++,opencv,camera-calibration,C++,Opencv,Camera Calibration,我正在使用8x8棋盘用OpenCV校准我的相机;但我有一些奇怪的结果: 我尝试用棋盘上的两张照片校准相机,其中一张照片未失真是正确的,但另一张的角被拉伸: 有人能告诉我为什么我会得到这些奇怪的结果吗?我该如何解决这个问题呢?试着使用更多的图像,使电路板处于不同的方向。我会用至少10个。另外,一定要移动电路板,以获得整个视野的点。第一张图像:它几乎与图像平面平行。在这种情况下,图像中的消失点很难观察到,因此相机内部的约束很模糊 建筑场景图像中消失点的摄像机校准,BMVC(1999), 作者:R

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

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


有人能告诉我为什么我会得到这些奇怪的结果吗?我该如何解决这个问题呢?

试着使用更多的图像,使电路板处于不同的方向。我会用至少10个。另外,一定要移动电路板,以获得整个视野的点。

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

建筑场景图像中消失点的摄像机校准,BMVC(1999), 作者:R Cipolla,T Drummond,D Robertson

此外,失真校正仅在没有观测数据的区域(沿图像边界)是错误的。这告诉我们,校准后的模型不擅长外推,但擅长插值。这是一个过度拟合的经典示例


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

好的,我将使用更多图像。但是,这两个图像之间的差异是什么导致了第一个图像中的问题?openCV的文档非常具体地介绍了如何使用多个图像进行校准。由于标定算法是一种优化算法;它可能与模型过于吻合。这导致一部分图像被“正确”重建,另一部分图像被错误重建。该算法不适用于少量图像。我建议使用10张以上的图像(大约15-20张)进行校准。校准只考虑图案内的像素(据我所见,在您的示例中,这是没有正方形外边界的棋盘)。图案之外的所有东西都可能会非常扭曲,因此您应该拍摄足够的照片,以覆盖整个相机视野。