Configuration Window15 Jun
Sorry for the big delay since the last update. I was out of town and then I had a paying job come up, so the free stuff had to wait :-) That said, anyone who wants to pay me to work on this, let me know :-)
anyway...
OK, so now the config window is basically done. It has two very simple views. The first is a raw video view that also shows the region of interest. (ie where you want to look for blobs). and the second shows how the blobs get translated to your surface. (scaled down).
On the left is the raw video/ROI config. you can grab the edges of the red ROI rectangle to adjust the ROI shape (you will see an adjustment cursor). you can also drag the whole thing around from the center of the rectngle (a hand cursor).
the right hand side is the projection config view. it helps get your blobs moving in the proper directions. You can affect this with the rear projection and vertical mirror prefs. These dont affect the raw video (it is the RAW video after all) but do affect how the blobs get translated to the screen coordinates. so you can use those to make sure that your blobs are moving up when you move your hand up and left when you move your hand left etc. You can see in the picture how my set up works. I am projecting from below the surface, and the camera raw video is upside down. However you can see that the blobs are oriented properly (and altho you cant see it, they track properly as well)
I also updated a whole bunch of other code. I made some small changes to the main blob detector so that I can more easily integrate a drop in-replacement that handles CIImages so that it is easier to use the CIFilters that are so handy.
I also 'finished' the configurator coordinate converter. Now it generates 'screen' coordinates that are simply normalized values related to the ROI. currently they follow the NSView coordinate scheme so a blob in the lower left of the ROI (lower left to the user, however you have that setup via the projection prefs) will be at coordinates 0,0 and the upper left will be at 1,1. a point in the center would show up as 0.5,0.5. this makes it nice and easy to make windows that take up your whole projection surface and place the blobs properly into them. (i had originally thought about providing screen coordinates, but that is a bit unwieldy, and this way is easier, i think)
all the code is available here: http://code.google.com/p/opentouch/.




My full name is Ben Britten Smith.