How to do the correspondance 2D-3D points

1.5k Views Asked by At

I'm working with OpenCv API on an augmented reality project using one camera.I have :

  • The 3D point of my 3D object( i get 4 points from MeshLab)
  • The 2D points which i want to follow ( i have 4 points):these points are not the projection of the 3D points.
  • Intrinsic camera parameters.

Using these parameters, i have the extrinsic parameters( rotation and translation using the cvFindExtrinsicParam function) which i have used to render my model and set the modelView matrix. My problem is that the 3D model are not shown in particular position: it has been shown in différent location on my image. How can i fix the model location and then the modelView matrix? In other forums they told me that i should do the correspondance 2D-3D to get the extrinsic parameters but i don't know how to correspond my 2D points with the 3D points?

1

There are 1 best solutions below

4
On

Typically you would design the points you want to track in such a fashion that the 2d-3d correspondence is immediately clear. The easiest way to do this is to have points with different colors. You could also go with some sort of pattern (google augmented reality cards) which you would then have to analyze in order to find out how it is rotated in the image. The pattern of course can not be rotation symmetric.

If you can't do that, you can try out all the different permutations of the points, plug them into OpenCV to get a matrix, then project your 3D points to 2D points with those matrices, and then see which one fits best.