I'm working on a project about Augmented Reality using a marker (which is a chessboard) that takes images from webcam and insert a 2D/3D object onto the chessboard plane(realtime) .
By using openCV i was able to detect the chessboard corners and draw it.
I used Direct3D to render the frame (by using orthogonal projection), so that later I can use it to project 2d/3d objects.
Now I stuck at this stage. I know there are libraries such as ARToolkit etc, however I want to understand the technique and algorithm behind it. How can I find the transformation matrix that can map 3D object to the chessboard plane ?
This paper explains it well:
H. Kato and M. Billinghurst. Marker tracking and hmd calibration for a videobased augmented reality conferencing system. Augmented Reality, 1999. (IWAR ’99) Proceedings. 2nd IEEE and ACM International Workshop on, pages 85–94, 1999. 1, 2, 7, 9
A fast explanation:
Find corders of the marker and create 2d edges from it
create base vectors u1, u2 of the marker using planes defined by the edges (http://twitpic.com/4fmbsu)
use cross product on the two base vectors u1, u2 to obtain the third vector u3
use them to construct your matrix
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With