"OpenCV Introductory Tutorial II" List of the mountains small: OpenCV 2.4.8 or OpenCV 2.4.9 component structure full analysis (go), opencv2.4.9
This series of articles is written by zhmxy555 (Mao), please specify the source.
Article Link: http://blog.csdn.net/poem_qianmo/article/details/19925819
Author: Mao (Light ink) e-mail: happylifemxy@163.com
When writing the current blog post, use OPENCV version: 2.4.8
Before eating a lot of OpenCV official documents, found that if you understand some OPENCV the overall module architecture, then focus on learning the parts of their interest, there will be a list of the mountain small feeling, so, decided to write this article, as the departure OPENCV series of blog post second.
As for the research method of the OPENCV component structure, we may as well glimpse, through the OPENCV installation path under the Include directory inside the header file classification storage, to glimpse OPENCV These years rapid development of the complex component architecture.
We go to the D:\ProgramFiles\opencv\build\include directory and we can see the two folders with OpenCV and Opencv2. Obviously, the OpenCV in this folder contain the old version of the header file. and Opencv2 This folder has a new version of the OpenCV2 series header files.
In OpenCV This folder, that is, D:\Program FILES\OPENCV\BUILD\INCLUDE\OPENCV directory, you can see the following various header files. This is probably the OPENCV 1.0 core, and the contents of the header files, you can understand them as a whole component.
Take a look at our focus on the Opencv2 side, in the D:\ProgramFiles\opencv\build\include\opencv2 directory, we can see these folders:
We brainwave, found below a opencv_modules.hpp called the hpp file, a look at the inside is stored in the Opencv2 of the new module construction related code, open a look, sure enough, the definition is OpenCV2 all components of the macro:
[CPP]View Plaincopyprint?
- /*
- * * * * File generated automatically, do not modify * *
- *
- *this file defines the list of modules available in current build configuration
- *
- *
- */
-
- #define Have_opencv_calib3d
- #define Have_opencv_contrib
- #define Have_opencv_core
- #define Have_opencv_features2d
- #define Have_opencv_flann
- #define Have_opencv_gpu
- #define Have_opencv_highgui
- #define Have_opencv_imgproc
- #define Have_opencv_legacy
- #define HAVE_OPENCV_ML
- #define Have_opencv_nonfree
- #define Have_opencv_objdetect
- #define HAVE_OPENCV_OCL
- #define Have_opencv_photo
- #define Have_opencv_stitching
- #define Have_opencv_superres
- #define Have_opencv_ts
- #define Have_opencv_video
- #define Have_opencv_videostab
OK, not much courtesy, the following is the OpenCV of all the module introduction, in order to:
"Calib3d"-in fact, is the calibration (calibration) plus 3D The combination of two words abbreviation. This module is mainly about camera calibration and three-dimensional reconstruction. The basic multi-View geometry algorithm, single stereo camera calibration, object attitude estimation, stereo similarity algorithm, 3D information reconstruction and so on.
"Contrib"-the abbreviation for Contributed/experimental Stuf, which contains some of the most recently added, less-stable optional features, without the need for multi-tube. 2.4. This module in 8 has a new type of face recognition, stereo matching, artificial retina model and other technologies.
The core function module contains the following content:
- OPENCV BASIC Data structure
- Dynamic Data Structures
- Drawing functions
- Array manipulation related functions
- accessibility features and system functions and macros
- Interoperability with OpenGL
The abbreviated combination of the two words "Imgproc"--image and processing. Image processing module, this module contains the following content:
- Linear and non-linear image filtering
- Geometric transformations of images
- Other (miscellaneous) image conversion
- Histogram correlation
- Structural analysis and Shape description
- Motion Analysis and Object tracking
- Feature detection
- Target detection and other content
"Features2d"-that is, FEATURES2D, 2D functional framework, contains the following:
- Feature detection and description
- Feature detector (Feature detectors) Universal interface
- Descriptor Extractor (descriptor extractors) Universal interface
- Descriptor Match (Descriptor Matchers) Universal interface
- Universal Descriptor (Generic descriptor) Matching Universal interface
- Key point drawing function and matching function drawing function
The "Flann"--fast library for approximate Nearest neighbors, a high-dimensional approximate nearest neighbor Fast search algorithm repository, contains two sections:
- Fast approximate nearest neighbor search
- Clustering
"GPU"--a computer vision module using GPU acceleration
"Highgui"-that is, high GUI, GUI graphical user interface, including media input and output of I/O, video capture, encoding and decoding of image and video, interface of graphic interface, etc.
- Motion Analysis
- Maximizing expectations
- Histogram
- Planar subdivision (C API)
- Feature detection and description (Feature Detection and Description)
- Generic interface for Descriptor Extractor (descriptor extractors)
- Common interface for common descriptors (Generic descriptor matchers)
- Matching device
"ML"--machine learning, the machine learning module, is basically a statistical model and classification algorithm, which contains the following:
- Statistical models (statistical Models)
- General Bayesian classifier (normal Bayes Classifier)
- K-Nearest neighbor (K-nearestneighbors)
- Support vector machines (supported vectors machines)
- Decision Tree (decision Trees)
- Lift (boosting)
- Gradient Enhancement Tree (Gradient Boosted Trees)
- Stochastic tree (random Trees)
- Super Random tree (extremely randomized trees)
- Desired maximization (expectation maximization)
- Neural network (neural Networks)
- Mldata
"Nonfree", which is a patented algorithm module, contains feature detection and GPU-related content. Preferably not commercial, may be accused oh.
"Objdetect"-the target detection module, which contains the two parts of Cascade classification (cascading classification) and latent SVM.
"OCL"--opencl-accelerated computer vision, a computer Vision component module using OPENCL acceleration
"Photo"--that is, computational photography, contains image repair and image denoising two parts
"Stitching"--images stitching, Image mosaic module, contains the following sections:
- Splicing Line
- Features to find and match images
- Estimated rotation
- Automatic calibration
- Picture Skew
- Seam estimation
- Exposure compensation
- Picture blending
"Superres"--superresolution, the related function module of super-resolution technology
"TS"--OPENCV test the relevant code, no need to control him
Video analysis component, which includes motion estimation, background separation, object tracking and other video processing related content.
"Videostab"--video stabilization, video stability-related components, no more introductions in official documents, no matter what it is.
See here, I believe you have a OPENCV module architecture design has a certain understanding.
OpenCV is actually so many modules as a code container to combine the SDK just, nothing unusual, right.
Finally, with a picture, to raise the eye-candy:
Well, that's probably what OpenCV's component structure describes.
See the following article:)
http://www.bkjia.com/PHPjc/1080763.html www.bkjia.com true http://www.bkjia.com/PHPjc/1080763.html techarticle "OpenCV Introductory Tutorial II" List of the mountains small: OpenCV 2.4.8 or OpenCV 2.4.9 component structure full analysis (go), opencv2.4.9 this series of articles by zhmxy555 (Mao), reproduced please note ...