For an assignment, I had to create a short stop-motion movie. Before starting to search for good software to aid the process of taking something like 600 photos, I decided to write a simple application by myself. Actually, I wanted to use my own cheap webcam for this, and as the default drivers are a mess, I preferred to use my own UVC driver. This is especially a good stress-test to the driver, and I am happy to say that it survived streaming, mode-switching and taking 600 photos without any complains.

Basic working mode is to display a live feed of the current camera image in very low resolution, thus at good frame-rates. Whenever the space-bar is pressed, the camera is switched to 1280x1024 resolution, takes a picture, stores it with an increasing number in the filename and switches back to the low resolution. I've added some neat helpers, like the ability to preview the entire movie without needing to exit the application. Also, I've added (ok, "hacked" would be a more appropriate term) a simple difference-image-overlay to enable better judgment on how the current (live feed frame) differs from the previously captured frame.

For those interested, I will upload the final movie to some video platform someday. For now, I just give you the code of the stop-motion capturing application. It's so basic, it only has 171 lines.

Get it here:
stopmotion.cpp