我使用 aruco 标记进行了相机校准。由于内在矩阵是 K = [fx 0 cx; 0 fy cy; 0 0 1]
和哪里 fx = image_width/2 and fy = image_height/2
。我进行了两次校准,结果是:
情况1
camera_matrix: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 1.7837087835808685e+004, 0., 9.4648597205501767e+002, 0.,
1.7846680517567835e+004, 6.2655678552312384e+002, 0., 0., 1. ]
distortion_coefficients: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [ 1.3214125616841757e-001, 1.3720591379476604e+001,
4.1379706976846960e-003, 3.2630160993931338e-002,
7.2446581087476508e-002 ]
案例二
camera_matrix: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 3.9925887362481939e+004, 0., 9.6015637557091463e+002, 0.,
3.5268399261164773e+003, 5.9886507612381956e+002, 0., 0., 1. ]
distortion_coefficients: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [ 4.4338539084399781e-001, 4.9217843346948866e+000,
5.8004377137432547e-002, 1.1762688789809046e-004,
-5.4097967557812456e+002 ]
图片的分辨率是1920*1200,所以cx
andcy
应该是960和600。第二种情况,cx
and和cy
预期的一样;重投影误差很大。在其他情况下cx
,cy
不匹配,但重投影误差非常低(小于 1)。
那么现在可以考虑哪些结果是最好的,一般如何fx
定义fy
?