- Prepend "javacpp." to all properties associated with Maven in the
pom.xml
files to avoid name clashes - Add a
Mat(CvArr arr)
constructor for convenience (issue bytedeco/javacv#317) - Fix loading issue with
opencv_xfeatures2d
(issue bytedeco/javacv#316) - Virtualize all
Solver
classes from Caffe (issue #143) - Work around GSL not loading on Android (issue bytedeco/javacpp#55)
- Fix Android builds of FFmpeg, FFTW, GSL, Leptonica, and Tesseract causing errors under Mac OS X (issue #45)
- Avoid versioning of FFTW and GSL libraries, preventing them from working on Android (issue #127)
- Upgrade presets for OpenCV 3.1.0, FFmpeg 2.8.5, libdc1394 2.2.4, videoInput, GSL 2.1, cuDNN 4, and Caffe, including the latest versions of their dependencies (issue bytedeco/javacpp#55)
- Add presets for TensorFlow (issue #111)
- Virtualize
opencv_videostab.IFrameSource
to let us implement it in Java (issue bytedeco/javacv#277) - Fix MinGW-w64 builds with recent versions of GCC 5.x and potential issue with using "w32threads" for FFmpeg
- Add missing
StatModel.loadXXX()
methods in theopencv_ml
module (issue #109) - Define commonly used Caffe
std::vector
types (DatumVector
,FloatCallbackVector
, andDoubleCallbackVector
) for ease of use and performance reasons - Fix the
cppbuild.sh
script for FFmpeg, failing to build x264 and OpenH264 properly on Windows
- Build the Maven artifacts for Linux in a CentOS 6 Docker container, for maximum compatibility (issue #22)
- Cache files downloaded by
cppbuild.sh
in thedownloads
subdirectory to prevent having to redownload everything after a clean - Add the
clang
module to the presets for LLVM - Propose for FFmpeg in the
cppbuild.sh
file a minimal configuration to support MPEG-4 streams with H.264 and AAC - Add the non-GPL OpenH264 as an alternative H.264 encoder to x264 in FFmpeg
- Hack together
log_callback.h
to be able to redirect to Java log messages from FFmpeg - Pick up
OLDCC
,OLDCXX
, andOLDFC
environment variables incppbuild.sh
andplatform.oldcompiler
system property in Maven to build with it libraries that can tolerate an older version of the C/C++ compiler on Linux - Upgrade all Maven dependencies and plugins to latest versions, thus bumping minimum requirements to Java SE 7, Android 4.0, and Maven 3.0
- Provide
cppbuild.sh
script for Caffe that includes all dependencies (pull #77) - Upgrade presets for Caffe, CUDA 7.5, cuDNN 3, FFmpeg 2.8.1, Speex 1.2rc2, x265 1.8, FlyCapture 2.8.3.1, libfreenect 0.5.3, LLVM 3.7.0, Tesseract 3.04
- Include
motion_vector.h
,fifo.h
, andaudio_fifo.h
header files in theavutil
module of FFmpeg (issue #79) - Add presets for Chilitags, thanks to Chris Walters for the financial contribution
- Let users choose the runtime type of
layer_by_name()
fromFloatNet
orDoubleNet
incaffe
(issue bytedeco/javacpp#25) - Add presets for the
face
,optflow
, andxfeatures2d
modules of OpenCV 3.0 (issue bytedeco/javacv#196, issue bytedeco/javacv#239, issue #54) - Switch to GCC 4.9 by default on Android, probably dropping support for Android 2.2, because GCC 4.6 has issues with OpenMP (issue bytedeco/javacv#179)
- Resolve missing dependency for GSL on
windows-x86
by linking statically whatever it needs fromlibgcc_s_dw2-1.dll
- Build OpenCV, GSL, Leptonica, and Tesseract from source code on all platforms for better consistency in functionality across platforms
- Add presets for CUDA 7.0 (including cuBLAS, cuDNN, cuFFT, cuRAND, cuSOLVER, cuSPARSE, and NPP)
- Offer the Apache License, Version 2.0, as a new choice of license, in addition to the GPLv2 with Classpath exception
- Add libvpx in the
cppbuild.sh
script for FFmpeg to support the WebM format (issue #33) - Upgrade presets for OpenCV 3.0.0, FFmpeg 2.7.1, OpenSSL 1.0.2d, x265 1.7, Leptonica 1.72, LLVM 3.6.1, and the latest of Caffe
- Define commonly used OpenCV
std::vector
types (PointVector
,Point2fVector
,Point2dVector
,SizeVector
,RectVector
,KeyPointVector
,DMatchVector
) for ease of use and performance reasons - Map
cv::saturate_cast<>()
in a more meaningful way (issue #53) and name these functions more consistently - In addition to Leptonica and Tesseract, use only the officially supported GCC compiler for FFmpeg, FFTW, and GSL under Windows as well, to prevent compatibility issues (issue bytedeco/javacv#137)
- Make
flycapture/cppbuild.sh
fail if FlyCapture is not found installed on the system (issue #46) - Patch libdc1394, libdcfreenect, FFTW, GSL, Leptonica and Tesseract with missing
@rpath
needed by Mac OS X (issue #46)
- Remove unneeded
@Opaque
types fromgsl
and replace them with their definitions whose names end with "_struct" - Segregate methods using
java.awt
classes into the newJava2DFrameConverter
class of JavaCV (issue #12) - Emphasize the need to install separately the parent
pom.xml
file (issue #42) - Make CMake configurable via
CMAKE
variable incppbuild.sh
(pull #41) - Add presets for Caffe (issue #34)
- Let
createBuffer()
returnUByteIndexer
andUShortIndexer
when appropriate for unsigned data types - Remove the need to set manually the
platform.dependency
system property for downstream modules without acppbuild.sh
file - Fix failing
cppbuild.sh
for FFmpeg on Ubuntu (issue #32) - Disable iconv, XCB, and SDL for more portables builds of FFmpeg, but enable
x11grab
andavfoundation
to allow screen capture (issue #39) - Avoid versioning of Leptonica and Tesseract libraries, preventing them from working on Android (issue #38)
- Add x265 in the
cppbuild.sh
script for FFmpeg, thanks to Mark Bolstad (issue bytedeco/javacv#41) - Upgrade presets for OpenCV 2.4.11, FFmpeg 2.6.1, OpenSSL 1.0.2a, FlyCapture 2.7.3.19, libdc1394 2.2.3, libfreenect 0.5.2, LLVM 3.6.0
- Switch from
IntPointer
toBoolPointer
for theBOOL*
pointer type of Leptonica (issue #36) - Add
preload
forgif
,jpeg
,png
,tiff
, andwebp
libraries in presets for Leptonica (issue #36) - Include missing
ltrresultiterator.h
header file in the presets for Tesseract (issue #36) - Append
@Documented
to annotation types to have them picked up by Javadoc
- Update instructions in the
README.md
file for manual installation in Android Studio - Include presets for Leptonica 1.71 and Tesseract 3.03-rc1 on Windows too
- Fix
Mat.createFrom(BufferedImage)
(issue #30) - Add Speex, OpenCORE (AMR-NB and AMR-WB), and OpenSSL in the
cppbuild.sh
script for FFmpeg to support common RTMPS streams, among other things (issue #2 and issue bytedeco/javacv#71) - Deprecate slow
get()
andput()
methods ofCvMat
in favor of the fast ones fromcreateIndexer()
(issue javacv:317) - Include
operations.hpp
andmat.hpp
inopencv_core
to get a few important functions such asread()
andwrite()
forFileStorage
- Replace
install_name_tool
hack to set@rpath
on Mac OS X with patches to do it properly on install (issue bytedeco/javacpp#6 and issue bytedeco/javacv#49) - Disable DocLint, which prevents the build from succeeding on Java 8 (issue bytedeco/javacpp#5)
- Disable OpenCL detection when building FFmpeg, causing link failures (issue #19)
- Document a bit the
create()
factory methods in thehelper
package of the OpenCV module, and their relationship with therelease()
methods - Include new
createIndexer()
method inCvMat
,IplImage
,Mat
, etc. for easy and efficient multidimensional access of data (issue #317) - Deprecate
get*Buffer()
methods in favor of a better named and genericcreateBuffer()
method - Fix
java.lang.UnsatisfiedLinkError
when allocatingopencv_core.Mat
, among others (issue bytedeco/javacv#9 and issue bytedeco/javacv#28) - Force OpenCV to build with GCC 4.6, as newer versions are known to hang on Android 2.2 (issue android:43819)
- Upgrade presets for OpenCV 2.4.10, FFmpeg 2.5.1, FlyCapture 2.7.3.13, libfreenect 0.5.1, ARToolKitPlus 2.3.1, LLVM 3.5.0, and videoInput 0.200, where the latest code got merged into the master branch
- Add callbacks for Tesseract according to new functionality in JavaCPP
- Fix missing dependency of
opencv_contrib
onopencv_nonfree
(issue javacv:490) - Skip functions that are not actually implemented in
avdevice
, causing load failures on Android - Update presets for FFmpeg where
avcodec
now inherits fromswresample
(issue #13) - Add a
README.md
file to each presets with links to original project, Java API documentation, and sample usage - Add missing overloaded methods with
PointerPointer
parameters in LLVM module
- Add libmp3lame to FFmpeg builds (issue javacv:411)
- Upgrade presets for FFmpeg 2.3, FlyCapture 2.6.3.4 (pull #6, issue #8), libfreenect 0.5
- Make the
cppbuild.sh
scripts install native libraries inside thecppbuild
subdirectories, instead of on the system - Include new
platform.dependency
andplatform.dependencies
properties to let users depend easily on the artifacts that contain native libraries - Add presets for flandmark 1.07 (pull #9), FFTW 3.3.4, GSL 1.16, LLVM 3.4.2, Leptonica 1.71, Tesseract 3.03-rc1
- Fix missing
static
keyword on methods annotated with an@Adapter
(issue #3) - Turn
Mat.createFrom()
into a static factory method, and makeMat.copyFrom()
callMat.create()
as appropriate (issue #1) - Add missing
native_camera
modules ofopencv_highgui
for Android - Fix functions from
opencv_stitching
not accepting aMatVector
as apparently intended by the API (issue javacv:466)
- Move from Google Code to GitHub as main source code repository
- Rename the
com.googlecode.javacpp
package toorg.bytedeco.javacpp
- Appended the version of the parent artifact to the ones of the child modules, in an effort to avoid conflicts
- Updated
cppbuild.sh
scripts with support for the "android-x86" platform (issue javacv:411), thanks to Xavier Hallade - Added presets for PGR FlyCapture 1.7
- Fixed compilation errors on Android, Mac OS X, and Windows
- Upgraded to OpenCV 2.4.9, FFmpeg 2.2.1, libdc1394 2.2.2, and libfreenect 0.4
- Introduced build scripts, based on the CPPJARs package of JavaCV, to install native C/C++ libraries
- Ported various helper classes and methods from JavaCV
- Inserted missing dependency entries in the
pom.xml
files of the child modules - Added presets for the C++ API of OpenCV 2.4.8, which can now be parsed due to the latest changes in JavaCPP
- Fixed JavaCPP properties not getting set by the parent
pom.xml
file - Added presets for the C API of OpenCV 2.4.8, FFmpeg 2.1.x, libfreenect 0.2 (OpenKinect), videoInput 0.200, and ARToolkitPlus 2.3.0
Initial release
This project was conceived at the Okutomi & Tanaka Laboratory, Tokyo Institute of Technology, where I was supported for my doctoral research program by a generous scholarship from the Ministry of Education, Culture, Sports, Science and Technology (MEXT) of the Japanese Government. I extend my gratitude further to all who have reported bugs, donated code, or made suggestions for improvements (details above)!