Over a million developers have joined DZone.

What's New in BoofCV 0.19?

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

· Java Zone

What every Java engineer should know about microservices: Reactive Microservices Architecture.  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

Youtube

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 

Microservices for Java, explained. Revitalize your legacy systems (and your career) with Reactive Microservices Architecture, a free O'Reilly book. Brought to you in partnership with Lightbend.

Topics:
java ,computer vision ,boofcv

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

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

{{ parent.tldr }}

{{ parent.urlSource.name }}