lambdaloop/aniposelib

cv2.initCameraMatrix2D initialisation

oliver-batchelor opened this issue · 1 comments

Something seems to be wrong with the parameters passed into cv2.initCameraMatrix2D... I suspect something not right with board.get_all_calibration_points

This is the output of cv2.calibrateCamera (focal length ~2250)

 [[2.24678790e+03 0.00000000e+00 1.02546166e+03]
 [0.00000000e+00 2.24602727e+03 7.64098182e+02]
 [0.00000000e+00 0.00000000e+00 1.00000000e+00]]

Own implementation passing the same raw points into cv2.initCameraMatrix2D (focal length ~2250):

[[2.24765913e+03 0.00000000e+00 9.99500000e+02]
 [0.00000000e+00 2.24765913e+03 7.49500000e+02]
 [0.00000000e+00 0.00000000e+00 1.00000000e+00]]

aniposelib initialisation from cv2.initCameraMatrix2D after board.get_all_calibration_points(rows)
(focal length ~121!!!)

[[121.30633838   0.         999.5       ]
 [  0.         121.30633838 749.5       ]
 [  0.           0.           1.        ]]

I realize this is very old, but if you're still available, do you have more detail on this?
Perhaps even the points that cause this issue?

I just spent some time double checking the cod and I can't find any clear issues. In the latest aniposelib, I'm getting reasonable values from initCameraMatrix2D...