Over a million developers have joined DZone.

What's New in BoofCV 0.19?

DZone's Guide to

What's New in BoofCV 0.19?

BoofCV 0.19 is live! See what the latest release brings.

· Java Zone
Free Resource

Just released, a free O’Reilly book on Reactive Microsystems: The Evolution of Microservices at Scale. Brought to you in partnership with Lightbend.

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.

Website: http://boofcv.org


Image Histogram Based Image Retrieval

Color Histogram 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.

 Example Color Histogram Lookup

Motion Detection: Static Camera

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.

Example Background Stationary Camera

Motion Detection: Moving Camera

Image title

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.

Example Background Moving Camera 

Scene Classification

Confusion Matrix

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.

Example Scene Classification 

Black Polygon Detection

Detected Black Polygons

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.

Example Detect Black Polygons

Morthological Thining

Morphological Thinning

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.

Example Morphological Thinning 

Strategies and techniques for building scalable and resilient microservices to refactor a monolithic application step-by-step, a free O'Reilly book. Brought to you in partnership with Lightbend.

java ,computer vision ,boofcv

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}