For those of you who don't know, BoofCV is a free open source computer vision library. Written from scratch for ease of use and high performance. Its functionality covers a wide range of subjects including, optimized low-level image processing routines, camera calibration, feature detection/tracking, structure-from-motion, and recognition
The last release was a year ago and in that time a ton of new features and bug fixes have been added. Below are an example of several of the new features, ones with code examples for them. Fiducials and camera calibration have also recieved a bit of work and are much better now.
Image Histogram Based Image Retrieval
The ability to extract and use color histograms as features was flushed out in this version. Making it easy to use all the usual image feature functions. In this example the color histogram of images are used to do a quick lookup in a database of vacation photos for similar ones.
Motion Detection: Static Camera
Motion detection/background modeling for static cameras was added. Two different pixel motion models were added, basic which uses a rolling average, and Gaussian which models the distribution of each pixel using a Gaussian distribution are provided. While these techniques are extemely fast, for them to work the camera must remain still.
Motion Detection: Moving Camera
In this example of background modeling/motion detection the camera follows the chipmunk! Using standard techniques the entire image would be mark as moving. The major disadvantage of this technique is that it is much more computationally expensive. Running at around 40 Hz instead of 2000 Hz.
Scene classification is the problem of labeling a image with the scene it belongs in. A bow-of-words nearest-neighbor classifier was added to BoofCV and applied to a dataset with a couple thousand images. While these techniques are no longer the state of the art, the BoofCV implementation had about 3% better accuracy and was much faster than a VLFeat Python implementation.
Black Polygon Detection
As part of the new code for fiducials in BoofCV a black polygon detector was made. It very robustly can detect squares, for other shapes there is room for improvement in the next version.
One day a user asked a question about how to thin a binary image. At first I thought that would be easy you just need to call some binary operators, then realized it hadn't yet been added to BoofCV! Well, now it's there.