pythonopencvcamera-calibration

What is the aim of cv2.Rodrigues() applying on rvec in context of camera calibration


currently I learning the subject of camera calibration. In context of extrinsic camera calibration I read a lot about cv2.rodrigues(). For example to obtain the pose of the camera. But I dont understand why we have to use this function? What is realy the aim of it?

Thanks


Solution

  • Rodrigues is a way to parameter a rotation in the 3d space. It's good because it takes 3 parameters and a rotation in 3d space has 3 degree of freedom. Rotation matrix has 9 parameters and quaternion 4, euler angles have other problems. A rotation in 3d space is a screwing, it's a rotation around an axis. You put the normalized axis in a vector then you multiply by the angle of rotation in radian and you get the rodrigues. It makes the Rodrigues understandable by human.