Got an image with a chessboard of known size (the cyan line is 2cm long)
the naive way of determining the FOV would be like this:
catX = x1 - x0
catY = y1 - y0
hypoPx = sqrt(catX ** 2 + catY ** 2)
pxRatio = hypoPx / 200 # pixels/mm
pxHeight, pxWidth = img.shape[:2]
width, height = width / pxRatio, height / pxRatio
But it doesn't account for the perspective distortion.
So I got its rotation and transform vectors using solvePnPRansac
(the axes on the image illustrate its orientation correctly).
I suppose it should be enough data to determine the field of view in mm almost precisely, but could not move further, I'm not very good at matrices and stuff ... Any hints?