Search code examples
opencvcomputer-visionaugmented-realityarucopose-estimation

Why OpenCV 4.7.0 removed estimatePoseSingleMarkers()?


From OpenCV 4.7.0 appears that estimatePoseSingleMarkers() not longer exists in favor to SolvePnP() for Pose Estimation as stated in OpenCV documentation https://docs.opencv.org/4.7.0/d5/dae/tutorial_aruco_detection.html Is there any reason or I'm missing something?

I found that in documentation for 4.7.0 appears estimatePoseSingleMarkers() as deprecated https://docs.opencv.org/4.7.0/da/d58/deprecated.html#_deprecated000071


Solution

  • It's been removed because cv::solvePnP() serves the same purpose.

    The added benefit of solvePnP() is that you aren't limited to whatever coordinate system used to be "prescribed" by the aruco module's estimatePoseSingleMarkers() function.

    You can choose to place the marker's origin in the center or on any of its corners. You can even choose to have Z point into or out of the marker, or to assign the axes entirely differently.