SolvePnP can't get correct result

asked 2017-12-01 03:10:28 -0500

I am working on SFM problem. What I got is like this :

I calculated 3d points with triangulation ,using 2d matching image points.

With the 2d points v2d ,3d points v3d, camera matrix K and the correct Projection Matrices P ( P != eye(3) ), I test the usage of solvePnP. the solvePnP can't give the right rotation and translation. the 3d points is not on one plain and the number is larger than 4.

However , Using other pair (2d,3d ) data , I can get the correct answer . Anyone can help ?

Here is the data. points2d3d

And more detail: detail

edit retag flag offensive close merge delete


"P != eye(3)" The projection matrix is 3x4, so why do you compare it to a 3x3 matrix? "and the number is larger than 4." What do you mean?

FooBar gravatar imageFooBar ( 2017-12-01 13:57:31 -0500 )edit

P = [ R | T ] and R! = eye(3) , T != zeros(3), I used the image points on the second view . the 3d points' number is larger than 4 . My purpose is to get the Rs and Ts, same with R and T, with solvePnP method . But the result is that the opencv solvePnP can't give me the correct answer. And at last I sovled the pnp problem with other method. Thank You!

liujiabin076 gravatar imageliujiabin076 ( 2017-12-01 21:22:54 -0500 )edit