OpenCV 3.0

Jun 4, 2015

With a great pleasure and great relief OpenCV team finally announces OpenCV 3.0 gold release, the most functional and the fastest OpenCV ever. And yet it's very stable too - all the thousands of tests that we created during the project + many new tests pass successfully on Windows, Linux and Mac, x64 and ARM.

opencv_contrib (http://github.com/itseez/opencv_contrib) repository has been added. A lot of new functionality is there already! opencv_contrib is only compatible with 3.0/master, not 2.4. Clone the repository and use "cmake ... -D OPENCV_EXTRA_MODULES_PATH=<path_to opencv_contrib/modules> ..." to build opencv and opencv_contrib together.

a subset of Intel IPP (IPPCV) is given to us and our users free of charge, free of licensing fees, for commercial and non-commerical use. It's used by default in x86 and x64 builds on Windows, Linux and Mac.

T-API (transparent API) has been introduced, this is transparent GPU acceleration layer using OpenCL. It does not add any compile-time or runtime dependency of OpenCL. When OpenCL is available, it's detected and used, but it can be disabled at compile time or at runtime. It covers ~100 OpenCV functions. This work has been done by contract and with generous support from AMD and Intel companies.

~40 OpenCV functions have been accelerated using NEON intrinsics and because these are mostly basic functions, some higher-level functions got accelerated as well.

There is also new OpenCV HAL layer that will simplifies creation of NEON-optimized code and that should form a base for the open-source and proprietary OpenCV accelerators.

We cleaned up API of many high-level algorithms from features2d, calib3d, objdetect etc. They now follow the uniform "abstract interface - hidden implementation" pattern and make extensive use of smart pointers (Ptr<>).

Improved Android support - now OpenCV Manager is in Java and supports both 2.4 and 3.0.

Greatly improved WinRT support, including video capturing and multi-threading capabilities. Thanks for Microsoft team for this!

Big thanks to Google who funded several successive GSoC programs and let OpenCV in. The results of many successful GSoC 2013 and 2014 projects have been integrated in opencv 3.0 and opencv_contrib (earlier results are also available in OpenCV 2.4.x). We can name:

greatly improved Python support, including Python 3.0 support, many new tutorials & samples on how to use OpenCV with Python.

2d shape matching module and 3d surface matching module

RGB-D module

VTK-based 3D visualization moduleetc.

Besides Google, we enjoyed (and hope that you will enjoy too) many useful contributions from community, like:

biologically inspired vision module

DAISY features, LATCH descriptor, improved BRIEF

image registration moduleetc.

(note: if anything is missing here, please, mail to us and we will update the announcement and the changelog).

The release is pretty much compatible with 2.4.x, but there are some notable differences, which are described in the still-updated 2.4=>3.0 transition guide: http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html in particular, we have to remove some obsolete/unstable algorithms, functions, we moved some other stuff between modules or to opencv_contrib.

Since 3.0 release we change the version enumeration scheme. Instead of 3-digit version number, like 2.4.9 (where 4-digit version 2.4.9.1 is used for intermediate updates), we will use 2-digit (3.0, 3.1 etc.) with the 3rd digit used for the intermediate updates.

In other words, in the next 1-2+ years we will have evolving 3.x series of releases with very good compatibility between them.

We would like to sincerely thank everybody who helped us to prepare the release, who submitted new functionality, patches, who submitted bug reports, who mentored the students, who donated to OpenCV.org, the companies who funded 3.0 development and everybody else to helped us in one or another way.