How it works

cv2.solvePnP is able to find the translation and rotation of the object by its 3D points in a local coordinate system and their 2D projections onto the image. It accepts a set of 3D points, a set of 2D points, a 3x3 camera matrix, distortion coefficients, the initial rotation and translation vectors (optional), a flag of whether to use the initial position and orientation, and the type of problem solver. The first two arguments should contain the same number of points. The type of solver may be one of many: cv2.SOLVEPNP_ITERATIVE, cv2.SOLVEPNP_EPNP, cv2.SOLVEPNP_DLS, and so on.

By default, cv2.SOLVEPNP_ITERATIVE is used and it gets decent results in many cases. cv2.solvePnP returns three values: a success flag, a rotation vector, ...

Get OpenCV 3 Computer Vision with Python Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.