opencvimage-processingopencv-solvepnp

rvec/tvec from solvePnP vs. rvec/tvec from calibrateCamera


I've read this answer but I still don't understand the rvec/tvec pair returned by calibrateCamera and the rvec/tvec pair returned by solvePnP.

I understand that solvePnP solves for [R|T] which is given here.

enter image description here

This is very clear - it's an affine transformation from the world points to the image plane. And together, the camera matrix K and [R|T] form K[R|T], the projection matrix.

However, I can't seem to find what the purpose of the rvec/tvec returned by calibrateCamera is.


Solution

  • The rvecs/tvecs returned by calibrateCamera describe how to project from the local coordinate system of each of the checkerboards to your camera's image plane.

    This is just like how the rvec/tvec from solvePnP describes how to project from the coordinate system of the points given to it, to your camera's image plane.

    You can convert from an rvec into a full R matrix using Rodrigues().