Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How is the principal point defined?


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:


Is it Alt. 1 or Alt. 2? Also, is there any way to deduce this from the intrinsic parameters?

Regards, Daniel