![]()
Most of my time at Ars Electronica was spent in the Electrolobby, taking part in the OpenFrameWorks workshop, run by Zach Lieberman & Henrik Wrangel.
“OpenFrameWorks, is a new open source, cross platform, c++ library, which was designed by Zachary Lieberman (US) to make programming in c++ for students accessible and easy. In it, the developers wrap several different libraries like opengl for graphics, quicktime for movie playing and capturing, and free type for font rendering, into a convenient package in order to create a simple, intuitive framework for creating projects using c++. It is designed to work in freely available compilers, and will run under any of the current operating systems”.
I am new to C++, but have used many computer vision applications in the past, from Director Xtras, Eyesweb, Jitter etc. I was keen to understand the depths of computer vision, exactly how these applications analysed video and create my own code for better control.
I had only attended the workshop for two days, yet OpenFrameWorks was quite easy to use, once you get started and get your head around the C++ syntax & structures. The image above shows the debug mode in the program I created. My aim was to study motion, and work out direction of movement. The lower left square shows the live video, and right of this a reference frame for background subtraction. I then created a difference image (what has changed between the background and live video), and then any movement above a threshold. The top left image is a motion history, fading out over time. By analysing this data, it is possible to study every pixel (and those around it) and work out the direction of movement using a gradient. The top right is a vector field, showing the direction and magnitude of each pixel, although my volunteer is standing quite still here. From this I made a simple demo of snow falling particles that got displaced from the vector data.
Overall OpenFrameWorks was easy to use, and even in its early state, I can see potential for this becoming what Processing is to Java, an easier entry point for those wishing to learn c++. No website for OFW just yet, but will update this post when there is.
![]()
![]()
More from Ars Electronica.
Electrolobby workshop photos.