In two weeks time, well do the first public performance in the project Reaktiva projektioner 1.0 (Reactive Projections 1.0). I started working with openframeworks early last summer, and have been slowly building up the application since then (in my spare time).
I use a FireFly MV camera (retrofitted with a filter that blocks visible light) to film the dancers, and regular stage lights with multiple colored filters (red + green + blue) in a row to light the back drop with infrared light, enabling my program to see the dancers as black contours against a light background.
We use LED-based stage lights to light the dancers- Since LEDs dont radiate any infrared light, this ensures that the dancers stay dark in the camera image.
In the app I have a background thread that receives and processes the incoming video frames using Open CV (blob detection and optical flow). Since I have multiple cores on the computer Im running the app on, this got me a big boost in frame rate compared to before (since the QuickTime frame decoding and the Open CV stuff can now take place in parallel with the scene drawing). Though it was a bit tricky to get the multiple threads up and running.
I segment the dancers contours by subtracting a background image that I save in advance, and then use blurring and thresholding to get the contour image to pass to the blob detection.
In the app I have built up a system with switchable scenes that process the camera image and outputs video to the projector. I also have a simple sound file player (just a wrapper for ofSoundPlayer) and a loop player (also ofSoundPlayer) that can trigger multiple synced loops on top of each other and is sensitive to the movements of the dancers.
Finally, I have added a simple cueing system that can trigger scene changes, audio changes, do fades, stuff like that. Its all handled manually by the operator by clicking on a button to trigger each new cue. A bit tedious, but it works.
I started out using ofxCocoa, but pretty soon I started to modify it to allow me to have multiple windows with of-content, and also nib-based Cocoa content in my app. Its gotten a bit out of control, there are five windows that open when the app starts (not counting the main projection window), so I think I will have to add some window management menu commands pretty soon.
I use lots of different addons, and I have been referring to these forums _a lot_ during the development. Im really grateful to the openframeworks community, the project would never have been possibly without it!
Here is a trailer for the performance:
http://www.youtube.com/watch?v=6EizMpJtD0I