Hello.
Something I've thought about for a while, how is the principal point in the calibration matrix defined (in the general case, and from OpenCV's calibration algorithm)? Depending on how you define your principal point, the corners of pixel (0, 0) end up in either
P_corners = [(-0.5, -0.5), (0.5, -0.5), (-0.5, 0.5), (0.5, 0.5)]
or in
P_corners = [(0, 0), (1, 0), (0, 1), (1, 1)]
This is crucial when calculating the vector/ray that goes from the camera optical center to the pixel center or the pixel corner. If you're wrong about how the principal point is defined, your ray will be off by half a pixel (which corresponds to some angle depending on your focal length and fov etc.).
Here's an image to further explain my question:
C:\fakepath\pixel_coordinates.png
Is it Alt. 1 or Alt. 2? Also, is there any way to deduce this from the intrinsic parameters?
Regards, Daniel