# The limitation of solvePnP() for pose estimation

Please correct me if I am wrong. From my understanding and posts from Internet, all the successful pose estimation results by solvePnP() were setting the original of the world coordinate system at the planar image or marker. Am I right? What if the original of the world coordinate system is NOT on the planar image or marker, will solevPnP() give a correct pose estimation w.r.t. the image or marker? Can anyone answer me? Thanks in advance.

http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#solvepnp (solvePnP) function can solve arbitrary pose estimation problems, not constrained with the planar case. You can see from the documentation opencv uses p3p or epnp algorithms. These algorithms are general.

Hi, Swing, I did read the link and tried solve PnP() over and over again. I always failure to get a stable pose estimation no matter the training data are from planar or non-planar. I am not sure what I went wrong but I am skeptical about the result of solvePnP().