Vision Update
Edge-detect no longer crashes on certain source images. The bug in edge-detect is a reference-tracking issue. Not wanting to debug the massive decision tree that produces the output, I have replaced all of the nontrivial memory management with the Boehm garbage collector. This doesn't solve the problem of the output being poor in edge cases, but it does keep the program from crashing on images it doesn't like, while still maintaining sufficient speed to run inside the vision pipeline.
For the record, attempting to mass
free everything yourself using
brk causes a segmentation fault. Ignoring
free and
execing the program after every frame works, but is too slow to be practical in a real-time problem, such as vision.
The new vision code will be in svn as soon as I can move the changes to a clean copy of the source from the one with all of the cruft from trying to deal with this problem.