关于用OpenCV的CalibrateCamera标定相机的内参和外参的一些问题的探讨

最近尝试用OpenCV来标定工业相机,先下载了OpenCV自带的的标定的例程camera_calibration.cpp,建立了一个同名的win32空项目,把代码拷进去,然后设置项目的include属性,lib库,反正是项目编译成功了!借鉴博文https://blog.csdn.net/App_12062011/article/details/52045531 很快就实现了对棋盘标定图案,以及对不对称圆图案,和对称圆的标定图案三种标定图案的标定,但后面反复试验我发现了两个让我非常疑惑的问题:

第一:每次标定处理的内参矩阵cameraMatrix, 和畸变系数的distCoeffs的值都不一样,而且相差的非常巨大;

第二:如果是棋盘标定图还好,如果是圆形的标定图案当标定图像与图像平面成角度放置时用findCirclesGrid函数找到圆点中心的成功率就非常的低。

         这就使我对OpenCV对相机标定的准确性发生了很大的怀疑,理论上,

相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等;

相机外参数是在世界坐标系中的参数,比如相机的位置、旋转方向等

这两个参数如果相机的安装位置确定,焦距不变,就应该是基本恒定的,但实际我用同样的拍摄条件下拍摄不同的标定板得到的这两个参数完全不同,大小值和正负都不同,这也太离谱了。我用同样的标定图像反复标定,得到的值大小和正负也不同。不知道有没有发现和我一样情况的,如果有的话希望可以一起探讨一样原因。

    

你可能感兴趣的:(OpenCV相机标定)