Difference between revisions of "Download"

From BoofCV
Jump to navigationJump to search
m
 
(80 intermediate revisions by the same user not shown)
Line 2: Line 2:


'''Latest Stable Release:'''
'''Latest Stable Release:'''
* [http://sourceforge.net/projects/boofcv/files/v0.16/boofcv-v0.16-libs.zip/download Compiled Jar and dependencies]
* [https://sourceforge.net/projects/boofcv/files/v1.0.0/ Jars and Source Code]
* [http://sourceforge.net/projects/boofcv/files/v0.16/boofcv-v0.16-docs.jar/download JavaDOC]
* [https://github.com/lessthanoptimal/BoofCV/blob/v1.0.0/change.txt Change Log]
* [http://sourceforge.net/projects/boofcv/files/v0.16/boofcv-v0.16-src.zip/download Source Code]
 
* [[BoofCV_Change_Log|Change Log]]
'''Pre-Built Applications:'''
* [[Applications#Examples_and_Demonstrations| Examples and Demonstrations ]]


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


'''Android users''', if these jars give you trouble it's probably because they were compiled with JDK 7.  See the [[Android_support#JDK_7_Issues|Android support page]] for a work around. 
= Java Version =


= Maven =
To run BoofCV requires Java 11 and above. Building BoofCV requires Java 17, but if you use the build in Gradle script that is handled for you.


BoofCV is on Maven central repository. A dependency is needed for each module that you used. The modules available are calibration, feature, geo, io, ip, recognition, sfm, visualize, and xuggler.  To do anything useful you will need at a minimum io, ip. See below for an example dependency list:
Where to download the Java Virtual Machine
* https://www.azul.com/downloads/zulu/
* https://adoptopenjdk.net/


<pre>
NOTE: Version 0.39 and before maintained compatibility with Java 8.  
<dependency>
  <groupId>org.boofcv</groupId>
  <artifactId>io</artifactId>
  <version>0.16</version>
</dependency>


<dependency>
= Maven Central =
  <groupId>org.boofcv</groupId>
The easiest way to use boofcv is to reference its jars on [https://search.maven.org/search?q=g:org.boofcv 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.
  <artifactId>ip</artifactId>
  <version>0.16</version>
</dependency>


<dependency>
Artifact List
  <groupId>org.boofcv</groupId>
* ''boofcv-core'' : All the core functionality of BoofCV.
  <artifactId>visualize</artifactId>
* ''boofcv-all'' : All the core and integration packages in BoofCV. This can be very large. You probably want core!
  <version>0.16</version>
* ''boofcv-android'' : [http://developer.android.com/index.html Android] support
</dependency>
* ''boofcv-WebcamCapture'' : [http://webcam-capture.sarxos.pl/ Webcam Capture support]
</pre>
* ''boofcv-javacv'' : [https://github.com/bytedeco/javacv JavaCV] (Reading OpenCV files)
* ''boofcv-ffmpeg'' : [https://github.com/bytedeco/javacpp-presets javacpp-presets] Reading videos
* ''boofcv-swing'' : Visualization using Java Swing
* ''boofcv-jcodec'' : [http://jcodec.org/ jcodec] Pure Java (and buggy) library for reading videos.


Where MODULE is one of the modules listed.
== Gradle Dependencies ==


= Bleeding Edge =
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. 1.0.0. If you just want image processing, with very few external dependencies, just include the following in your Gradle script:
 
<pre>
BoofCV is being developed in parallel with several other libraries. If you plan on using the latest source code you will need to check out all of their repositories too.
api("org.boofcv:boofcv-core:$VERSION")
 
</pre>
* [https://github.com/lessthanoptimal/GeoRegression GeoRegression]
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.
* [http://ddogleg.org/ DDogleg]
* [http://code.google.com/p/efficient-java-matrix-library/ EJML]
 
Below is a commandline sequence for checking all of those libraries and BoofCV. It also shows you how to place everything in the correct location relative to each other.  This is helpful if you plan on using the provided IntelliJ files.


Since this does not include GUI or Webcam code most of the examples will not run! Here's how you can add them:
<pre>
<pre>
git clone git://github.com/lessthanoptimal/BoofCV.git boofcv
['boofcv-core','boofcv-swing','boofcv-WebcamCapture','demonstrations'].each
cd boofcv
    { String a -> compile group: 'org.boofcv', name: a, version: VERSION }
git submodule init
git submodule update
cd ..
git clone git://github.com/lessthanoptimal/GeoRegression.git georegression
git clone git://github.com/lessthanoptimal/ddogleg.git ddogleg
mkdir -p ejml/trunk
svn checkout https://efficient-java-matrix-library.googlecode.com/svn/trunk/ ejml/trunk
</pre>
</pre>


Just after BoofCV is checked out it sets up a submodule for the data.  The submodule contains data files used in the example code.
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.


The easiest way to build everything is with an IDE. Configuration files are provided for IntelliJ. If you wish to build using ant then you will need to build each library individually in a specific order and copy the jars around.  Since this is a pain, using an IDE is recommended or writing a script.
= Bleeding Edge =
<pre>
 
cd ejml/trunk/
The absolutely latest code is available on Github. This code should be considered developmental and may or may not work. Please follow build instructions included in the [https://github.com/lessthanoptimal/BoofCV#building-from-source README.MD] as those will be up to date. There is also a (slightly) out of date [https://youtu.be/qMTtdiujAtQ?t=67 YouTube Video].
ant
cp build/jar/EJML.jar ../../ddogleg/lib/
cp build/jar/EJML.jar ../../georegression/lib/
cp build/jar/EJML.jar ../../boofcv/lib/
cd ../../ddogleg/
ant
cp build/jar/DDogleg.jar ../georegression/lib/
cp build/jar/DDogleg.jar ../boofcv/lib/
cd ../georegression/
ant
cp build/jar/GeoRegression.jar ../boofcv/lib/
cd ../boofcv/main/
ant
</pre>


= Past Releases =
= Past Releases =
Line 84: Line 58:
! Version !! Link !! Description  
! Version !! Link !! Description  
|-
|-
| Alpha v0.16 || [https://sourceforge.net/projects/boofcv/files/v0.16 Link] || Object tracking, FFT, color SURF
| v1.0.0 || [https://sourceforge.net/projects/boofcv/files/v1.0.0 Link] || New version number system. Camera state in bundle adjustment
|-
| v0.44 || [https://sourceforge.net/projects/boofcv/files/v0.44 Link] || Android Fragments, 
|-
| v0.43.1 || [https://sourceforge.net/projects/boofcv/files/v0.43 Link] || Mesh viewer/rendering, STL files, bug fixes
|-
| v0.42 || [https://sourceforge.net/projects/boofcv/files/v0.42 Link] || Bug fixes, new filters, OBJ support
|-
| v0.41 || [https://sourceforge.net/projects/boofcv/files/v0.41 Link] || Aztec Code, Android cameras, multi camera calibration, mesh
|-
| v0.40.1 || [https://sourceforge.net/projects/boofcv/files/v0.40 Link] || Micro QR Code and strict null enforcement
|-
| v0.39.1 || [https://sourceforge.net/projects/boofcv/files/v0.39.1 Link] || Markers (ECoCheck, AruCo), Calibration Apps, Simulation
|-
| v0.38 || [https://sourceforge.net/projects/boofcv/files/v0.38 Link] || Better MVS and Scene Recognition
|-
| v0.37 || [https://sourceforge.net/projects/boofcv/files/v0.37 Link] || Mutli-View Stereo
|-
|-
| Alpha v0.15 || [https://sourceforge.net/projects/boofcv/files/v0.15 Link] || Kinect, visual odometry, ground plane, bugs
| v0.36 || [https://sourceforge.net/projects/boofcv/files/v0.36 Link] || Random dot markers, SBA in Visual odometry, visualization
|-
|-
| Alpha v0.14 || [https://sourceforge.net/projects/boofcv/files/v0.14 Link] || Improved 2D image processing
| v0.35 || [https://sourceforge.net/projects/boofcv/files/v0.35 Link] || Even better Chessboard, stereo, various
|-
|-
| Alpha v0.13 || [https://sourceforge.net/projects/boofcv/files/v0.13 Link] || Feature API changes, VO, many changes
| v0.34 || [https://sourceforge.net/projects/boofcv/files/v0.34 Link] || More Concurrency, Chessboard, Lines
|-
|-
| Alpha v0.12 || [https://sourceforge.net/projects/boofcv/files/v0.12 Link] || SIFT, combined tracker, API changes
| v0.33 || [https://sourceforge.net/projects/boofcv/files/v0.33.1 Link] || Concurrency, SFM, QR Fixes
|-
|-
| Alpha v0.11 || [https://sourceforge.net/projects/boofcv/files/v0.11 Link] || Stereo Visual Odometry, trifocal tensor
| v0.32 || [https://sourceforge.net/projects/boofcv/files/v0.32 Link] || Uncalibrated Stereo
|-
|-
| Alpha v0.10 || [https://sourceforge.net/projects/boofcv/files/v0.10 Link] || 5-pt Essential, Template, Improved performance/API.
| v0.31 || [https://sourceforge.net/projects/boofcv/files/v0.31 Link] || Sparse Bundle Adjustment
|-
|-
| Alpha v0.9 || [https://sourceforge.net/projects/boofcv/files/v0.9 Link] || Android and Xuggler support, Refactorings
| v0.30 || [https://sourceforge.net/projects/boofcv/files/v0.30 Link] || Android and SFM
|-
|-
| Alpha v0.8 || [https://sourceforge.net/projects/boofcv/files/v0.8 Link] || Stereo disparity, tweaked calibration
| v0.29 || [https://sourceforge.net/projects/boofcv/files/v0.29 Link] || BOverride, Background GMM, GVersion
|-
|-
| Alpha v0.7 || [https://sourceforge.net/projects/boofcv/files/v0.7 Link] || Stereo calibration, rectification, improved API
| v0.28 || [https://sourceforge.net/projects/boofcv/files/v0.28 Link] || Fisheye calibration, Hex target, QR Code, polyline
|-
|-
| Alpha v0.6 || [https://sourceforge.net/projects/boofcv/files/v0.6 Link] || Camera calibration, 3D Vision, Performance, and more
| v0.27 || [https://sourceforge.net/projects/boofcv/files/v0.27 Link] || Module name changes, new calib target, new distortion
|-
|-
| Alpha v0.5 || [https://sourceforge.net/projects/boofcv/files/v0.5 Link] || Improvements to SURF and non-linear optimization
| v0.26 || [https://sourceforge.net/projects/boofcv/files/v0.26 Link] || Critical bug fixes, more examples, improved asymmetric grid
|-
|-
| Alpha v0.4 || [https://sourceforge.net/projects/boofcv/files/v0.4 Link] || Fixed bugs in SURF and MultiSpectral images
| v0.25 || [https://sourceforge.net/projects/boofcv/files/v0.25 Link] || 360 and fisheye support, Deep Learning, circle asym grid, ... etc
|-
|-
| Alpha v0.3 || [https://sourceforge.net/projects/boofcv/files/v0.3 Link] || More color and camera calibration support
| v0.24.1 || [https://sourceforge.net/projects/boofcv/files/v0.24.1 Link] || Fixed dependency on a SNAPSHOT
|-
|-
| Alpha v0.2 || [https://sourceforge.net/projects/boofcv/files/v0.2 Link] || API improvements and geometric vision
| v0.24 || [https://sourceforge.net/projects/boofcv/files/v0.24 Link] || Replaced Xuggler with JavaCV
|-
|-
| Alpha v0.1 || [https://sourceforge.net/projects/boofcv/files/v0.1 Link] || First formal publish release
| v0.23 || [https://sourceforge.net/projects/boofcv/files/v0.23 Link] || Refactoring of image names
|}
|}

Latest revision as of 07:37, 21 August 2023

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.

Java Version

To run BoofCV requires Java 11 and above. Building BoofCV requires Java 17, but if you use the build in Gradle script that is handled for you.

Where to download the Java Virtual Machine

NOTE: Version 0.39 and before maintained compatibility with Java 8.

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. 1.0.0. If you just want image processing, with very few external dependencies, just include the following in your Gradle script:

api("org.boofcv:boofcv-core:$VERSION")

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:

['boofcv-core','boofcv-swing','boofcv-WebcamCapture','demonstrations'].each
    { 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. Please follow build instructions included in the README.MD as those will be up to date. There is also a (slightly) out of date YouTube Video.

Past Releases

Version Link Description
v1.0.0 Link New version number system. Camera state in bundle adjustment
v0.44 Link Android Fragments,
v0.43.1 Link Mesh viewer/rendering, STL files, bug fixes
v0.42 Link Bug fixes, new filters, OBJ support
v0.41 Link Aztec Code, Android cameras, multi camera calibration, mesh
v0.40.1 Link Micro QR Code and strict null enforcement
v0.39.1 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