April 2004 through August 2005 I had a webcam pointed at the back yard. I had written a simple windows service to snap an image every 10 minutes when my computer was on. After I retired the webcam, I struggled to combine the massive collection of images into a video. Now, with the help of VirtualDub, Panda Batch File Renamer, and custom piece of software I wrote to eliminate poorly exposed images, I have finally finished the project (6yrs after the original images were taken).
The original images were relatively poor quality 640x480 jpegs that were named by date. Additionally, the webcam had (poor quality) auto white balance enabled which caused a dramatic difference in the brightness of the photos. And combining these into a video produced seizure-inducing jumps between day/night, light/dark.
The first step was to use Panda Batch File Renamer to number the files sequentially. This was accomplished by selecting the image directory, then selecting the Remove->All option followed by the Insert->sequence number option. After completing the rename operation, my files were named from 00001.jpg to 24946.jpg.
Next I used VirtualDub to combine the sequentially numbered imaged into a video stream. This is accomplished by using the File->Open viedo File... option and making sure that the "Automatically load linked segments" option is checked. Then simply select the 00001.jpg file and all the images will be loaded as frames. Then is it a simple matter of setting the source frame rate (Video->Frame Rate) to 24fps, and selecting a compression method (Video->Compression). I used Cinepak for it's simplicity.
This produced the desired video but there was a problem. The rapid day/night and light/dark switches caused a terrible flicker in the video. The original video with this problem is here.
To correct this problem I came up with the following solution: I wanted to remove the "extreme" frames from the video; those that were mostly white or mostly black. I concluded that if I simply summed up the pixel values of each frame, those with the lowest values (mostly black) and those with the highest values (mostly white) could be safely eliminated.
I implemented this in a quick-and-dirty Visual Basic program. One first selects the thresholds for eliminating "white" and "black" images (in terms of percent-of-max; I found white=10% and black=20% worked well). Then use the "select" button to choose the folder containing the images. At this point the program iterates through all the images (this can take a LONG time) and fills the list box with the images subject to deletion based on the chosen thresholds. Finally, one presses the "Delete" button to move all the poor quality images to the recycle bin.
After running my program on the file pool I eliminated nearly half of the frames. After re-running the file rename too and VirtualDub procedure, this produced a much smoother and watchable video.
Finally, without further adieu. Below is the final video! Note the interesting tree growth, wave patterns, occasional rain, freezing lake in the winter, and fascinating cloud patterns.
Here are links to the tools used: