# Wiimote Project

## Wiimote Projects => Wiimote Interactive Whiteboard => Topic started by: Acapulco on January 13, 2008, 07:02:00 PM

Title: Code explanation
Post by: Acapulco on January 13, 2008, 07:02:00 PM
Hi, i just read a post about the math behind the whiteboard, and I too can't figure it out. I read the whole project code and I understand almost everything, except some particular C# stuff which I believe I can find in some tutorials. My problem is with the Warper.cs file.

I see the identity matrix is set and that the source matrix is formed with 4 points (x0,y0 through x3,y3) and I understand the matrix multiplication function , the thing is, I can't seem to figure out what does the computeSquareToQuad, computeQuadToSquare and warp functions do.

I believe they are supposed to translate the IR led's position to screen coordinates, am I right? can someone explain the math behind it or point me into the right direction to read some literature please?

I would like to study the possibility of using 2 Wiimotes, one on top and one sideways on the board so as to increase resolution but first I gotta see the math behind it.

Thanks a lot!
Title: Re: Code explanation
Post by: bryanarby on January 14, 2008, 09:53:53 AM
... Isn't the source documentated?
Lol, you dont see that much.
Title: Re: Code explanation
Post by: Acapulco on January 14, 2008, 05:07:16 PM
It is documented, but not the math parts. I just need to know roughly what's Warper.cs job inside the program, the particular math I can figure out. For example "Warper.cs will take a matrix with the IR points and multiply it with whatever to get a matrix with this and that characteristics so it can be mapped to the screen". Or something similar.
Title: Re: Code explanation
Post by: Luke on January 17, 2008, 11:10:12 AM
As far as I can tell it uses a process called "pixel coordinate translation" using a stereo camera algorithm but with the Z(depth) component fixed. The use of stereo algorith gives a better output but is far more complex than a single camera translation. If you wanted to add a second remote control the warper.cs class would need to be changed considerably to accept parameters from both controls; also the maths may require more calibration points, depending on whether both cameras are lookingat the same screen or will they be used with a fixed depth (as is the case now) but to extend the whiteboard area.
Title: Re: Code explanation
Post by: Acapulco on January 23, 2008, 11:50:29 AM
Hey, thanks a lot luke. I will look into this technique and post anything new that I can figure out.

Again, thanks a lot!
Title: Re: Code explanation
Post by: acosta11 on April 16, 2008, 08:21:40 AM
Hello,

Anyone know about any document who explain the theory behind the calibration method that Johnny Lee uses? I've implemented the code in Delphi and that works great! But i really need to understand what the algebrics functions do... Excuse me for my english! :D

Thanks for help,

acosta11