OpenCV 2.1 new features

  

 OpenCV 2.1 is basically a stabilized OpenCV 2.0, yet there are a few new features.

>>> General modifications

  - SVN repository has been migrated from SourceForge to https://code.ros.org/svn/opencv.
    The bug tracker has been moved to https://code.ros.org/trac/opencv/.
    And we also have OpenCV twitter! http://twitter.com/opencvlibrary

  - The whole OpenCV is now using exceptions instead of the old libc-style mechanism.
    That is, instead of checking error code with cvGetErrStatus() (which currently always returns 0)
    you can now just call OpenCV functions inside C++ try-catch statements,
    cv::Exception is now derived from std::exception.
 
  - OpenCV does not support autotools-based build scripts,
    CMake (www.cmake.org) is the only way to build OpenCV on any OS.
    See http://opencv.willowgarage.com/wiki/InstallGuide.
   
  - All the parallel loops in OpenCV have been converted from OpenMP
    to Intel TBB (http://www.threadingbuildingblocks.org/). Thus parallel version of OpenCV
    can now be built using MSVC 2008 Express Edition or using earlier than 4.2 versions of GCC.
   
  - SWIG-based Python wrappers are still included,
    but they are not built by default and it's generally preferable to use the new wrappers.
    The python samples have been rewritten by James Bowman to use the new-style Python wrappers,
    which have been also created by James.
   
  - OpenCV can now be built and run in 64-bit mode on MacOSX 10.6 and Windows (see HighGUI and known problems below).
    On Windows both MSVC 2008 and mingw64 are known to work.
   
  - In theory OpenCV is now able to determine the host CPU on-fly and make use of SSE/SSE2/... instructions,
    if they are available. That is, it should be more safe to use WITH_SSE* flags in CMake.
    However, if you want maximum portability, it's recommended to turn on just WITH_SSE and WITH_SSE2
    and leave other SSE* turned off, as we found that using WITH_SSE3, WITH_SSSE3 and WITH_SSE4_1 can yield
    the code incompatible with Intel's pre-Penryn or AMD chips.

  - Experimental "static" OpenCV configuration in CMake was contributed by Jose Luis Blanco.
    Pass "BUILD_SHARED_LIBS=OFF" to CMake to build OpenCV statically.  

>>> New functionality, features:

  - cxcore, cv, cvaux:
 
    * Grabcut (http://en.wikipedia.org/wiki/GrabCut) image segmentation algorithm has been implemented.
      See opencv/samples/c/grabcut.cpp
 
    * new improved version of one-way descriptor is added. See opencv/samples/c/one_way_sample.cpp
   
    * modified version of H. Hirschmuller semi-global stereo matching algorithm that we call SGBM
      (semi-global block matching) has been created. It is much faster than Kolmogorov's graph
      cuts-based algorithm and yet it's usually better than the block matching StereoBM algorithm.
      See opencv/samples/c/stereo_matching.cpp.
     
    * existing StereoBM stereo correspondence algorithm by K. Konolige was noticeably improved:
      added the optional left-right consistency check and speckle filtering,
      improved performance (by ~20%).
     
    * User can now control the image areas visible after the stereo rectification
      (see the extended stereoRectify/cvStereoRectify), and also limit the region
      where the disparity is computed (see CvStereoBMState::roi1, roi2; getValidDisparityROI).
     
    * Mixture-of-Gaussian based background subtraction algorithm has been rewritten for better performance
      and better accuracy. Alternative C++ interface BackgroundSubtractor has been provided,
      along with the possibility to use the trained background model to segment the foreground
      without updating the model. See opencv/samples/c/bgfg_segm.cpp.   
     
  - highgui:
   
    * MacOSX: OpenCV now includes Cocoa and QTKit backends, in addition to Carbon and Quicktime.
      Therefore you can build OpenCV as 64-bit library. Thanks to Andre Cohen and Nicolas Butko, which components
     
      Note however that the backend are now in the alpha state, they can crash or leak memory,
      so for anything more serious than quick experiments you may prefer to use Carbon and Quicktime.
      To do that, pass USE_CARBON=ON and USE_QUICKTIME=ON to CMake and build OpenCV in 32-bit mode
      (i.e. select i386 architecture in Xcode).
     
    * Windows. OpenCV can now be built in 64-bit mode with MSVC 2008 and also mingw64.
     
    * Fullscreen has been added (thanks to Yannick Verdie).
      Call cvSetWindowProperty(window_name, CV_WINDOW_FULLSCREEN, 1) to make the particular window
      to fill the whole screen. This feature is not supported in the Cocoa bindings yet.    
    
    * gstreamer backend has been improved a lot (thanks to Stefano Fabri)    

>>> New tests:

  - A few dozens of new tests have been written and many existing tests have been extended
    to verify OpenCV correctness thoroughly. As a result, we brought the test coverage from
    rather mediocre numbers to pretty impressive ones (especially for cxcore and cv)!
   
    Module                 OpenCV 2.0 coverage                 OpenCV 2.1
                         (functions/conditions)          (functions/conditions)    
    cxcore                      65/54                            91/73
    cv                          52/46                            80/68
    ml                          66/47                            73/52
    highgui                     17/3                             54/27
    cvaux                        0/0                              5/12

  - Many new regression tests have been written in Python that check both OpenCV and the new-style bindings.

  - The test data moved to the separate repository: https://code.ros.org/svn/opencv/trunk/opencv_extra/testdata.
    And it is not included into the package, thus some tests from the cvtest and mltest will report about the missing data.
    You can download the directory to your hard drive and run cvtest like:
    ./cvtest -d <path_to_opencv_extra>/testdata/cv
    ./mltest -d <path_to_opencv_extra>/testdata/ml 
   
  - The test engine has been improved:
     added flags -tn, -seed, -r
     the detailed information about failed tests is displayed right in the console.

>>> Bug fixes:

  - about 200 bugs have been fixed. For the list of closed and still open bugs, please look at
    https://code.ros.org/trac/opencv/report and
    http://sourceforge.net/tracker/?group_id=22870&atid=376677.   
 
>>> Known problems/limitations.

  - there are some sporadic test failures on different platforms.
    Most probably they are caused by some very special test cases
    (that are usually generated randomly on each test run) and the test cases
    are not properly handled by the functions or by the tests.
    Some of the tests have been reproduced and reported here:
   
    https://code.ros.org/trac/opencv/ticket/29
    https://code.ros.org/trac/opencv/ticket/113
    https://code.ros.org/trac/opencv/ticket/114
   
  - the new Python bindings do not include interface for the new C++ functionality and MLL.
    this is going to be addressed in some special intermediate OpenCV release
 
  - documentation is also incomplete at the moment and there are occasional formatting,
    grammar and semantical errors.
    We continue to improve it on a regular basis. Please, check the up-to-date online
    documentation at:
   
    http://opencv.willowgarage.com/documentation/c/index.html (C)
    http://opencv.willowgarage.com/documentation/cpp/index.html (C++)
    http://opencv.willowgarage.com/documentation/python/index.html (Python)
   
  - please also check the list of open bugs at
    https://code.ros.org/trac/opencv/report and
    http://sourceforge.net/tracker/?group_id=22870&atid=376677.


April, 2010

转载于:https://my.oschina.net/heartfly/blog/4842

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值