1 | initial version |

The meanning is shown in the definition of sesor_msgs/CameraInfo.msg in ros API: http://docs.ros.org/api/sensor_msgs/html/msg/CameraInfo.html

P is needed in this type of msg.

Projection/camera matrix

[fx' 0 cx' Tx]

P = [ 0 fy' cy' Ty]

[ 0 0 1 0]

By convention, this matrix specifies the intrinsic (camera) matrix

of the processed (rectified) image. That is, the left 3x3 portion

is the normal camera intrinsic matrix for the rectified image.

It projects 3D points in the camera coordinate frame to 2D pixel

coordinates using the focal lengths (fx', fy') and principal point

(cx', cy') - these may differ from the values in K.

For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will

also have R = the identity and P[1:3,1:3] = K.

For a stereo pair, the fourth column [Tx Ty 0]' is related to the

position of the optical center of the second camera in the first

camera's frame. We assume Tz = 0 so both cameras are in the same

stereo image plane. The first camera always has Tx = Ty = 0. For

the right (second) camera of a horizontal stereo pair, Ty = 0 and

Tx = -fx' * B, where B is the baseline between the cameras.

Given a 3D point [X Y Z]', the projection (x, y) of the point onto

the rectified image is given by:

[u v w]' = P * [X Y Z 1]'

x = u / w

y = v / w

This holds for both images of a stereo pair.

It says in monocamera, for rectified image, P is [K | 0]; for raw image P is [K' | 0], the parameter of K' may differ from K, which can be thought as computed by projecting 3D points to rectified images. I guess K' is computed from projecting 3D points to raw images!

Copyright OpenCV foundation, 2012-2018. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.