← all repositories
lessthanoptimal/BoofCV

Computer vision in pure Java, no JNI required

BoofCV proves you don't need C++ wrappers to do real-time structure-from-motion, QR scanning, and camera calibration.

1.2k stars Java Computer Vision
BoofCV
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does BoofCV is a real-time computer vision library written entirely in Java. It covers the full stack: low-level image processing, feature detection and tracking, camera calibration, structure-from-motion, plus QR and Aztec code generation and scanning. It also ships with standalone applications for batch jobs like camera calibration and image downsampling.

The interesting bit Most serious CV libraries lean on native C++ via JNI (hello, JavaCV). BoofCV stays pure Java, which means no native build headaches, no platform-specific binaries, and straightforward deployment on Android or any JVM. The trade-off is yours to measure, but the convenience is real.

Key highlights

  • Modular Maven Central distribution: boofcv-core for the basics, plus Android, Kotlin, Swing, FFmpeg, and WebcamCapture integration modules
  • Self-contained build: Gradle handles dependencies, requires only Java 11+, and even ignores incompatible local JDKs automatically
  • Includes demonstration JARs with real-time parameter tweaking and intentionally readable example code
  • Apache 2.0 licensed

Caveats

  • Some integration submodules need manual build steps that Gradle skips with a warning
  • The README notes stale autogenerated code can accumulate; you need git clean -fd main before building from source

Verdict Worth a look if you’re building CV into a Java or Android codebase and want to avoid native dependency hell. If you’re already deep in Python/C++ OpenCV and happy there, this probably won’t pull you over.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.