OpenTouch progress report #1 - webpage, camera, programming language, capture library selection
Let’s start with some project links:
- OpenTouch project web page at Google Project Hosting,
- Source code will be placed at SVN on Google Hosting Project,
- Official webpage will be at OpenTouch.info (page is still underconstruction)
Big thanks to Christian Moore aka nui for domain and access to this page.
OpenTouch framework suppose to be a cross-platform one and everybody knows that cross-plaform programming is more complicated then one-platform programming. So together with my mentor (Bertrand Cachet) and WinLibre mentoring organization leader Pierre-Jean Coudert we had to choose the best programming language in which OpenTouch should be written. There were two choices: C++ or Java. I have to say that I have experience with C++, Java and Obj-C and after my attend at WWDC I wanted to use Obj-C, but that would stop me from doing a cross-platform solution. So taking all the advantages and disadvantages of Java & C++ we decided to use C++ as more common and universal language. OpenTouch is based on image processing and I think that for this kind of tasks C++ is much more efficient with better performance which is a big plus.
But of course there is one problem I either have to find a good cross-platform capture library that will allow me to do processing of the images from my camera or I have to develop one by myself. After a quick research in this area I found that guys from reactable that wrote reactivision have developed a library called portVideo which does what I want. It actually is a C++ cross-platform capture library. The version on portVideo is pretty old I have to compare it with the version that is used in the newest version of reactivision and based on that I will download the newest version and compile it on 4 different platforms (Mac OS X Tiget & Leopard, Windows XP and Ubuntu 7.04). When I get a working version of capture library I will move to blob detection implementation.
BlobDetection Java library cannot be used anymore so I have to either port it to C++ which should not be a problem concerning that both languages are OOP. I can also implement algorithm described in paper: “A Linear-Time Component-Labeling Algorithm Using Contour Tracing Technique“.
From the other side using OSC protocol to communicate between OpenTouch and application on top of it as described in my proposal allow us to use almost any language including Obj-C and all the new features of Mac OS X Leopard. That works for me :-)
Final decisions:
- OpenTouch will be developed in C++,
- Capture library will be based on portVideo and reactivision software,
- Demo application might be written in any language including Obj-C and all the Leopard techno like Core Animation, Quartz Composer with OSC support etc,
- Blob tracking algorithm will be ported to C++ from BlobDetection Java library or implemented from scratch based on paper I mentioned before.
When I started to work on my multitouch screen I’ve been using cheap Logitech Quickcam Messenger webcam and I knew that one day I have to buy new one for better quality and performance.
There were 3 candidates :
- SPC900NC Philips - pretty expensive USB camera with really good quality, seems to work on Mac OS X with Macam drivers,
- FireFly MV Point Grey Research - firewire camera, really good one but also really expensive, should work on every platform
- Fire-I Unibrain Camera - firewire camera, good quality, not as expensive as Firefly, support for all three platforms (Windows, Linux, Mac OS X), easy to change lens
I decided to order Fire-I. It should arrive in couple days. So I will let you know how it works soon. When camera will arrive I will hack the lens to cut off all the visible light and capture only IR.
Right now my Logitech Quickcam Messenger works with Macam drivers on Mac OS X without any problems.
That’s all for now :-)
Filed under: Free/Open Source, OpenTouch, Summer of Code 2007 |



No Responses to “OpenTouch progress report #1 - webpage, camera, programming language, capture library selection”
Leave a Reply