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.

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