This should be a "fully" functional program to find silhouettes in a still-camera sequence where the background is known. Example.cpp is an example showing how to use the actual function(s) involved. There are several commandline options to alter the arbitrary defaults given in the source code. Some errors in the commandline will result in use of the defaults anyway, so I recommend a batch file. The one included gives a commandline in which all the options are used. They show the default settings for each option, except the output path, in which "results\" is specified. example -option[srebBcCpo] -s specify source files Include the path (if necessary.) Rusty's background subtraction works on color images, but the rest of the program assumes greyscale. The sequence should be in pgm (or ppm...untested) format, uniformly named, and numbered with leading zeros. Specify location of integers with '#' as in "file####name.ext" for a sequence with 4 digits used in numbering. May follow with the first number in the sequence, and the last number. -s path\name##.ext -s name###abcd.ext 1 -s path\#### 50 75 -r specify range Enter the first number to access. Should follow with the final number in the sequence. -r 42 256 -r 5 -e specify location of edge data If CANNY edges are already available, use this option to indicate where, in the same way as the source files (-s). May follow with the value given edge pixels, and the value given nonedge pixels. -e path\###.ext -e name##.ext 0 -e #### 0 255 -b specify location of background subtraction data If background subtraction has already been done, use this option to indicate where it can be found, in the same way as source files (-s). May follow with the value given foreground pixels, and the value given background pixels. -b path\###.ext -b name##.ext 255 -b #### 255 0 -B perform background subtraction (may save) Use this option if background subtraction needs to be done. Follow with a path and filename as with source files (-s) if you wish the result to be saved in a particular location (using Rusty's code, it will be output to default files if you do not include this information). May follow with the value to be given foreground pixels, and background pixels. -c perform canny edge detection May include the high and low threshholds and the sigma value. -c 200 -c 200 100 -c 200 100 1.0 -C perform canny edge detection and save identical to -c except will also save the information to a default location or as specified by -e. -p specify output path -p pathname\ -o specify output filename Invoking this option without specifying a filename will prevent output of a final picture for any frame.