From BoofCV
Revision as of 10:28, 14 October 2021 by Peter (talk | contribs)
Jump to navigationJump to search

BoofCV is available from its central repository at Github or through periodic releases. Below are links to the latest stable release hosted on SourceForge.

Latest Stable Release:

Pre-Built Applications:

If you encounter any problems getting BoofCV up and running, please let us know! A bug might have slipped through testing or if the instructions are not clear we would like to know.

Maven Central

The easiest way to use boofcv is to reference its jars on Maven Central. See below for Maven and Gradle code. BoofCV is broken up into many modules. To make it easier to use BoofCV all of its core functionality can be referenced using the 'all' module. Individual modules in "integration" still must be referenced individually.

Artifact List

  • boofcv-core : All the core functionality of BoofCV.
  • boofcv-all : All the core and integration packages in BoofCV. This can be very large. You probably want core!
  • boofcv-android : Android support
  • boofcv-WebcamCapture : Webcam Capture support
  • boofcv-javacv : JavaCV (Reading OpenCV files)
  • boofcv-ffmpeg : javacpp-presets Reading videos
  • boofcv-swing : Visualization using Java Swing
  • boofcv-jcodec : jcodec Pure Java (and buggy) library for reading videos.

Gradle Dependencies

Here are some examples for how to add BoofCV to your Gradle project. You will need to replace $VERSION with the latest version of BoofCV, e.g. 0.39. If you just want image processing, with very few external dependencies, just include the following in your Gradle script:


It is possible to include only the modules inside of core that you need. While not difficult, you will need to learn more about how BoofCV is structured.

Since this does not include GUI or Webcam code most of the examples will not run! Here's how you can add them:

    { String a -> compile group: 'org.boofcv', name: a, version: VERSION }

Deep Learning does add some external dependencies that most people don't need. In the future that might become an optional dependency. For now look at Optimizing BoofCV for more complex ways to reduce the jar size.

Bleeding Edge

The absolutely latest code is available on Github. This code should be considered developmental and may or may not work. Be wary if the link below shows the build is failing, since it's likely to fail for you too!

To check it out do the following.

git clone -b SNAPSHOT --recursive boofcv

You need to do '--recursive' to ensure that you grab the data submodule too. If you forgot to do it you can also invoke the following command.

git submodule update --init --recursive

You will probably need to build the dependencies too. Check out the developer page for more information.

Then Gradle can be used to build the project as is usual. YouTube Video.

Past Releases

Version Link Description
v0.39 Link Markers (ECoCheck, AruCo), Calibration Apps, Simulation
v0.38 Link Better MVS and Scene Recognition
v0.37 Link Mutli-View Stereo
v0.36 Link Random dot markers, SBA in Visual odometry, visualization
v0.35 Link Even better Chessboard, stereo, various
v0.34 Link More Concurrency, Chessboard, Lines
v0.33 Link Concurrency, SFM, QR Fixes
v0.32 Link Uncalibrated Stereo
v0.31 Link Sparse Bundle Adjustment
v0.30 Link Android and SFM
v0.29 Link BOverride, Background GMM, GVersion
v0.28 Link Fisheye calibration, Hex target, QR Code, polyline
v0.27 Link Module name changes, new calib target, new distortion
v0.26 Link Critical bug fixes, more examples, improved asymmetric grid
v0.25 Link 360 and fisheye support, Deep Learning, circle asym grid, ... etc
v0.24.1 Link Fixed dependency on a SNAPSHOT
v0.24 Link Replaced Xuggler with JavaCV
v0.23 Link Refactoring of image names