Shadow Detection from Projection Screen using Firefly MV

Hi OF,

I have a question about detecting shadows. Basically, the set up fro my project is that there is a projector which casts a light on a projection screen, and on the other side of the screen, I have a Firefly MV camera.

The idea is that when people walk in front of the screen, their shadows are cast on it, and then the camera picks up this image and sends it to the computer. My program then does blob detection.

I thought this would be pretty straightforward, and that I’d get a nice high contrast black and white image. However, when I finally set it up, there’s a lot of flickering, and the circle of light keeps expanding and contracting. It basically makes it impossible to do blob detection because sometimes your shadow gets connected to the surrounding gray circle and sometimes disappears completely.

I’m not sure if this is a software issue - seems like the problem is more just with having the camera pointed at the light source. I was wondering if you guys have suggestions for how to fix this problem. Are there settings on the camera I can play with, or different screens, or projectors, or just a different setup of the whole project?

Thanks in advance for your help!

BTW, I’m using oF 0.062, ofxVideoGrabber, and the camera is Firefly MV Mono.

Just my 2 cents:

Try fixing the aperture of the camera, as the cam tries to adapt its aperture to the scene, so you’ll get a “pumping” effect. To reduce flickering / interferences because of the different “speeds” of projector and camera, you can supersample the last x images from the camera.

Another approach is to use infrared-lighting and a visible-light-filter (use multiple layers of exposed dia-film) on the cam. As the projector emits only light in the visible range, most of it gets filtered out by the filter ontop of the camera, and you’ll get only the shadows from the infrared light source.


make sure that the frame/refresh rates of the projector and clean multiples of each other, e.g. projector 60Hz, camera 30 or 60fps. a mismatch here could cause flickering.

Thanks to everyone for the response.

I looked into the framerate issue, but still wasn’t able to fix it with ofxVideoGrabber.

However, I did find a solution. A friend suggested CCV (, and I downloaded that to see what would happen, and there was no flickering. I’m not too sure exactly what the problem was (still fairly new to oF and C++), but I guess it turned out to be a software issue as opposed to a hardware/set up issue…?