opencv 2.4 beta



As usual, we created 2.4 branch in our repository (http://code.opencv.org/svn/opencv/branches/2.4), where we will further stabilize the code. You can check this branch periodically, before as well as after 2.4 release.

Common changes?

  • Some of the old functionality from the modules imgproc, video, calib3d, features2d, objdetect has been moved to legacy.
  • CMake scripts have been substantially modified. Now it's very easy to add new modules - just put the directory with include, src, doc and test sub-directories to the modules directory, create a very simple CMakeLists.txt and your module will be built as a part of OpenCV. Also, it's possible to exclude certain modules from build (the CMake variables "BUILD_opencv_<modulename>" control that).

New functionality?

  • The new very base cv::Algorithm class has been introduced. It's planned to be the base of all the "non-trivial" OpenCV functionality. All Algorithm-based classes have the following features:
    • "virtual constructor", i.e. an algorithm instance can be created by name;
    • there is a list of available algorithms;
    • one can retrieve and set algorithm parameters by name;
    • one can save algorithm parameters to XML/YAML file and then load them.
  • A new ffmpeg wrapper has been created that features multi-threaded decoding, more robust video positioning etc. It's used with ffmpeg starting with 0.7.x versions.
  • features2d API has been cleaned up. There are no more numerous classes with duplicated functionality. The base classes FeatureDetector and DescriptorExtractor are now derivatives of cv::Algorithm. There is also the base Feature2D, using which you can detect keypoints and compute the descriptors in a single call. This is also more efficient.
  • SIFT and SURF have been moved to a separate module named nonfree to indicate possible legal issues of using those algorithms in user applications. Also, SIFT performance has been substantially improved (by factor of 3-4x).
  • The current state-of-art textureless detection algorithm, Line-Mod by S. Hinterstoisser, has been contributed by Patrick Mihelich. See objdetect/objdetect.hpp, class Detector.
  • 3 face recognition algorithms have been contributed by Philipp Wagner. Please, check opencv/contrib/contrib.hpp, FaceRecognizer class, and opencv/samples/cpp/facerec_demo.cpp.
  • Enhanced LogPolar implementation (that uses Blind-Spot model) has been contributed by Fabio Solari and Manuela Chessa, see opencv/contrib/contrib.hpp, LogPolar_* classes and opencv/samples/cpp/logpolar_bsm.cpp sample.
  • A stub module photo has been created to support a quickly growing "computational photography" area. Currently, it only contains inpainting algorithm, moved from imgproc, but it's planned to add much more functionality.
  • Another module videostab (beta version) has been added that solves a specific yet very important task of video stabilization. The module is under active development. Please, check opencv/samples/cpp/videostab.cpp sample.
  • findContours can now find contours on a 32-bit integer image of labels (not only on a black-and-white 8-bit image). This is a step towards more convenient connected component analysis.
  • Canny edge detector can now be run on color images, which results in better edge maps
  • Python bindings can now be used within python threads, so one can write multi-threaded computer vision applications in Python.

OpenCV on GPU?

  • Different Optical Flow algorithms have been added:
    • Brox (contributed by NVidia)
    • PyrLK - both Dense and Sparse variations
    • Farneback
  • New feature detectors and descriptors:
    • GoodFeaturesToTrack
    • FAST/ORB which is patent free replacement of SURF.
  • Overall GPU module enhancements:
    • The module now requires CUDA 4.1 or later;
    • Improved similarity of results between CPU and GPU;
    • Added border extrapolation support for many functions;
    • Improved performance.
  • pyrUp/pyrDown implementations.
  • Matrix multiplication on GPU (wrapper for the CUBLAS library). This is optional, user need to compile OpenCV with CUBLAS support.
  • OpenGL back-end has been implemented for highgui module, that allows to display GpuMat directly without downloading them to CPU.

OpenCV on Android?

See the Android Release Notes for the complete list of changes

  • Added Android native camera support for Android 3.x and 4.0.x
  • Added Android x86 support
  • Added multithreading support on Android. It uses a tweaked version of Intel TBB library (supplied with the OpenCV for Android package).
  • Added numerous Java API enchantments.

Performance?

  • A few OpenCV functions, like color conversion, morphology, data type conversions, brute-force feature matcher have been optimized using TBB and/or SSE intrinisics.
  • Along with regression tests, now many OpenCV functions have got performance tests. Now for most modules one can build opencv_perf_<modulename> executables that run various functions from the particular module and produce a XML file. Note that if you want to run those tests, as well as the normal regression tests, you will need to get (a rather big) http://code.opencv.org/svn/opencv/trunk/opencv_extra directory and set environment variable OPENCV_TEST_DATA_PATH to "<your_copy_of_opencv_extra>/testdata".

Bug fixes.?

Known issues.?

  • When OpenCV is built statically, dynamically created classes (via Algorithm::create) can fail because linker excludes the "unused" object files. To avoid this problem, create classes explicitly, e.g
    1 Ptr<DescriptorExtractor> d = new BriefDescriptorExtractor;
    • In the beta, the superpack for Windows does not include static OpenCV libs.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值