Opencv2.4 Beta is out

加了line-mode,比较有吸引力。

April, 2012

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::Algorithmclass 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 andDescriptorExtractor 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.
  • 2 algorithms for solving PnP problem have been added. Please, check flags parameter in solvePnP and solvePnPRansac functions.
  • Enhanced LogPolar implementation (that uses Blind-Spot model) has been contributed by Fabio Solari and Manuela Chessa, see opencv/contrib/contrib.hpp, LogPolar_* classes andopencv/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, checkopencv/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.

OpenCV4Android

See the Android Release Notes.

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;
原文地址:https://www.cnblogs.com/CVArt/p/2478562.html