使用最新版的opencv2.4.0的同行们,在使用之前最好先读一下它的新功能说明,里面还是有很多变化的,包括一些头文件的使用。
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.
- 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 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.