使用OpenCV vs Matlab评估校准结果

2024-06-16 11:52:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,我必须校准摄像机,以便计算摄像机矩阵并将其用于其他过程

我使用Zahng的方法(棋盘格)校准相机,并使用两种不同的工具执行校准: 1-Matlab校准工具 2-OpenCV方法(cv2.CalibleCamera())

对于这两种方法,我使用了相同的图像(16个图像)

结果来自Matlab

4380.06266797091                0                0 
    0                    4374.31691291339        0
949.990213743877         664.725183192415        1

#Radial Distortion Coefficient
-0.355521260561817  1.30195034883959

#tangational Distortion Coefficient
0   0 

#average REPROJECTION ERROR
0.513903578285060
----------------------------------------------------

结果形成OpenCV代码

#camera matrix
mtx [[4.38350928e+03 0.00000000e+00 9.73653727e+02]
    [0.00000000e+00 4.37873075e+03 6.68924323e+02]
    [0.00000000e+00 0.00000000e+00 1.00000000e+00]]

#Distortion Coefficients
dist [[-3.59709752e-01  3.91496111e+00  3.43950578e-03  1.01871917e-03
      -6.21911790e+01]]

所以我的问题是:

1-主点稍有不同,认为哪个结果更准确

2-为什么OpenCV考虑5个畸变系数,而Matlab考虑4个畸变系数(OpenCV中不考虑的两个为零!)

提前谢谢


Tags: 工具项目方法图像过程矩阵opencv摄像机