Hi all, I have a problem with the function cv::SolvePnP. The same call works PERFECTLY under OpenCV 3.1 with three points (markers). This is the call:
cv::solvePnP(Markers3DCoord_world,ImagePoints,Mat(IntrinsicMatx),Mat(Distortionparams),rot_vec_l,vec_tras_l,true,cv::CV_ITERATIVE); Markes3DCoord_world are std::vector of Point3f whereas ImagePoints are std::vector of Point2f
I know that the problem would be ambigous in general with three points, but using an Iterative optimization (flags set to true and method: CV_ITERATIVE) if I use a good initial guess I obtain the solution I am seeking. The same method on OpenCV 3.3 crashes. Why is that? If i use the same method with a standard tracking of a chessboard (with n° of points = 12) it works perfectly. In this case the call is: flag_err=solvePnP(Markers3DCoord_world,ImagePoints,Mat(IntrinsicMatx),Mat(Distortionparams),rot_vec_l,vec_tras_l,false,cv::CV_ITERATIVE);
What's the matter with solvePnP under OpenCV 3.3?
Thanks