All Projects → lessthanoptimal → Boofcv

lessthanoptimal / Boofcv

Licence: apache-2.0
Fast computer vision library for SFM, calibration, fiducials, tracking, image processing, and more.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Boofcv

Alicevision
Photogrammetric Computer Vision Framework
Stars: ✭ 2,029 (+187.39%)
Mutual labels:  structure-from-motion, photogrammetry
Imageprocessing
MicaSense RedEdge and Altum image processing tutorials
Stars: ✭ 139 (-80.31%)
Mutual labels:  camera-calibration, image-processing
Uav Mapper
UAV-Mapper is a lightweight UAV Image Processing System, Visual SFM reconstruction or Aerial Triangulation, Fast Ortho-Mosaic, Plannar Mosaic, Fast Digital Surface Map (DSM) and 3d reconstruction for UAVs.
Stars: ✭ 106 (-84.99%)
Mutual labels:  structure-from-motion, image-processing
Meshroom
3D Reconstruction Software
Stars: ✭ 7,254 (+927.48%)
Mutual labels:  structure-from-motion, photogrammetry
Rawpy
📷 RAW image processing for Python, a wrapper for libraw
Stars: ✭ 256 (-63.74%)
Mutual labels:  camera-calibration, image-processing
Gyroflow
Video stabilization using gyro data from GoPro or external logs
Stars: ✭ 204 (-71.1%)
Mutual labels:  camera-calibration, image-processing
Mvstudio
An integrated SfM (Structure from Motion) and MVS (Multi-View Stereo) solution.
Stars: ✭ 154 (-78.19%)
Mutual labels:  structure-from-motion, photogrammetry
Blender Addon Photogrammetry Importer
Addon to import different photogrammetry formats into Blender
Stars: ✭ 292 (-58.64%)
Mutual labels:  structure-from-motion, photogrammetry
CameraCalibTools
List of Camera Calibration Tools + Patterns
Stars: ✭ 64 (-90.93%)
Mutual labels:  camera-calibration, photogrammetry
Computer Vision Guide
📖 This guide is to help you understand the basics of the computerized image and develop computer vision projects with OpenCV. Includes Python, Java, JavaScript, C# and C++ examples.
Stars: ✭ 244 (-65.44%)
Mutual labels:  camera-calibration, image-processing
Odm
A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷
Stars: ✭ 3,340 (+373.09%)
Mutual labels:  structure-from-motion, photogrammetry
Openmvg
open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
Stars: ✭ 3,902 (+452.69%)
Mutual labels:  structure-from-motion, photogrammetry
3dv tutorial
An Invitation to 3D Vision: A Tutorial for Everyone
Stars: ✭ 571 (-19.12%)
Mutual labels:  camera-calibration
Tesseract Ocr Scanner
基于Tesseract-OCR实现自动扫描识别手机号
Stars: ✭ 622 (-11.9%)
Mutual labels:  qrcode-scanner
Color Thief Php
Grabs the dominant color or a representative color palette from an image. Uses PHP and GD, Imagick or Gmagick.
Stars: ✭ 564 (-20.11%)
Mutual labels:  image-processing
Pyflow
Fast, accurate and easy to run dense optical flow with python wrapper
Stars: ✭ 564 (-20.11%)
Mutual labels:  image-processing
Vpp
Video++, a C++14 high performance video and image processing library.
Stars: ✭ 655 (-7.22%)
Mutual labels:  image-processing
Exposure
Learning infinite-resolution image processing with GAN and RL from unpaired image datasets, using a differentiable photo editing model.
Stars: ✭ 605 (-14.31%)
Mutual labels:  image-processing
Pytorch Cyclegan
A clean and readable Pytorch implementation of CycleGAN
Stars: ✭ 558 (-20.96%)
Mutual labels:  image-processing
Fspy Blender
Official fSpy importer for Blender
Stars: ✭ 538 (-23.8%)
Mutual labels:  camera-calibration

Build Status Join the chat at https://gitter.im/lessthanoptimal/BoofCV Maven Central


Table of Contents


Introduction

BoofCV is an open source real-time computer vision library written entirely in Java and released under the Apache License 2.0. Functionality includes low-level image processing, camera calibration, feature detection/tracking, structure-from-motion, classification, and recognition.

Cloning GIT Repository

The bleeding edge source code can be obtained by cloning the git repository.

git clone -b SNAPSHOT --recursive https://github.com/lessthanoptimal/BoofCV.git boofcv

Is the data directory empty? That's because you didn't follow instructions and skipped --recursive. Fix that by doing the following.

cd boofcv
git submodule update --init --recursive

Quick Start Examples and Demonstrations

New to Java? Make sure you have Java 14 or newer installed. In the command line type java -version and you should see something like:

java -version
openjdk version "14" 2020-03-17

In this case I do have Java 14 installed. If you need to install/upgrade Java there are many options these days, such as Zulu. A quick search should help if you need a more detailed explanation. You should avoid anything with -ea in its name since that's a developmental version.

You can now build and run? Then run the commands below! Each jar will open a window, then to run an application just double click on its name.

cd boofcv
./gradlew autogenerate
./gradlew examplesJar
java -jar examples/examples.jar
./gradlew demonstrationsJar
java -jar demonstrations/demonstrations.jar

All the code for what you see is in boofcv/examples and boofcv/demonstrations. Example code is designed to be easy to understand so look there first.

Click HERE for instruction on building and running Applications. There you can calibrate cameras, create QR codes, batch scan for QR codes, batch downsample images, ... etc.

Maven Central Repository

BoofCV is on Maven Central and can be easily added to your Maven, Gradle, ...etc projects. It's divided up into many modules. The easiest way to include the critical modules is to have your project dependent on 'core'.

For Maven projects:

<dependency>
  <groupId>org.boofcv</groupId>
  <artifactId>boofcv-core</artifactId>
  <version>0.37</version>
</dependency>

There are also several integration modules which help BoofCV interact with external projects. A list of those is included below:

Name Description
boofcv-core All the core libraries without any of the integration modules listed below
boofcv-android Useful functions for working inside of Android devices.
boofcv-javacv JavaCV is a wrapper around OpenCV mainly for file IO.
boofcv-ffmpeg javacpp-presets their ffmpeg wrapper is used for reading video files.
boofcv-jcodec JCodec is a pure Java video reader/writer.
boofcv-swing Visualization using Java Swing
boofcv-WebcamCapture A few functions that make WebcamCapture even easier to use.

Directories

Directory Description
applications/ Helpful applications
data/ Directory containing optional data used by applets and examples.
demonstrations/ Demonstration code which typically lets experiment by changing parameters in real-time
examples/ Set of example code designed to be easy to read and understand.
integration/ Contains code which allows BoofCV to be easily integrated with 3rd party libraries. Primary for video input/output.
main/ Contains the source code for BoofCV

Building from Source

Building and installing BoofCV into your local Maven repository is easy[1] using the gradlew script:

cd boofcv
./gradlew autogenerate            # Creates auto generated files
./gradlew publishToMavenLocal     # Installs it into the local maven repository 

If you wish to have jars instead, the following commands are provided.

./gradlew oneJarBin               # Builds a single jar with all of BoofCV in it
./gradlew createLibraryDirectory  # Puts all jars and dependencies into boofcv/library
./gradlew alljavadoc              # Combines all JavaDoc from all sub-projects into a single set

[1] A couple of the integration submodules have a custom build process that can't be performed by Gradle. The script is smart enough to ignore modules and tell you that it is doing so if you haven't configured it yet.

IntelliJ

IntelliJ is the recommended IDE for use with BoofCV. With IntelliJ you can directly import the Gradle project.

  1. File->Project From Existing Sources
  2. Select your local "boofcv" directory
  3. Confirm that you wish to import the Gradle project

Eclipse

The easiest way to import the project is to use Gradle to generate an Eclipse project.

cd boofcv
./gradlew eclipse

Then in Eclipse; 1) "import existing projects", 2) Select your BoofCV directory, 3) Click Finish. You can also install a Gradle plugin to Eclipse and import the project directory. That's left as an exercise for the reader.


Dependencies

Core BoofCV modules depends on the following libraries

The following is required for unit tests

Code from the following libraries has been integrated into BoofCV

The optional sub-projects in integration also have several dependencies. See those sub-projects for a list of their dependencies.


Contact

For questions or comments about BoofCV please use the message board. Only post a bug report after doing some due diligence to make sure it is really a bug and that it has not already been reported.

Message Board

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].