Reprint Please specify source: Danscarlett's Blog Park
OpenCV is the most widely used open source toolkit in the field of computer vision, based on C + +, supports Linux/windows/macos/android/ios, and provides interfaces to languages such as Python,matlab and Java. 2010 OPENCV released the 2.0 version, added a very complete C + + interface, from 2.0 onwards the version of the very user is very large, is still maintained and updated. The 2015 OPENCV 3 was officially released, with the addition of more algorithms, more performance optimizations and more streamlined APIs, as well as improved GPU support, which has now been applied in many research institutions and commercial companies. More features and more convenient features are available compared to opencv2,opencv3. However, considering the compatibility with the deep learning framework and the difficulty of getting started, this part first introduces 2. depending on the functionality and requirements, the function interfaces in OpenCV can be broadly divided into the following sections:
- Core module, which mainly contains the most basic structures (matrices, dots, shapes, etc.) in OpenCV, as well as related basic operations/operations.
- Imgproc: Image processing module, which contains basic functions related to image (filtering, gradients, resizing, etc.), as well as some derivative advanced functions (image segmentation, histogram, morphological analysis and edge/line extraction, etc.).
- Highgui: Provides the basic functions of user interface and file reading, such as the generation and control of display windows, IO of image/video files, etc.
OpenCV also provides strong support for video and some special visual applications:
- -Video: Common features used for visual analysis, such as optical flow (Optical flow) and target tracking.
- -Calib3d: three-dimensional reconstruction, stereo vision and camera calibration and other related functions.
- -features2d: Features related to two-dimensional features, mainly the non-patented, commercial-friendly feature point detection and matching functions such as Orb features.
- -Object: Target detection module with cascade classification and latent SVM
- -ML: Machine learning algorithm module, which contains some of the most commonly used traditional machine learning algorithms in vision.
- -Flann: Nearest neighbor Algorithm library, Fast library for approximate Nearest neighbors, used for clustering and retrieval in multidimensional space, often paired with key point matching.
- -GPU: Contains some GPU-accelerated interfaces, and the underlying acceleration is CUDA implementations.
- -Photo: Computational Camera Science (computational photography) related interface, of course, this is only a name, in fact, only image repair and noise reduction.
- -Stitching: Image mosaic module, with which it can generate panoramic photos on its own.
- -nonfree: Some algorithms that are protected by patents are actually sift and surf.
- -Contrib: Some experimental algorithms are considered for inclusion in a future release.
- -Legacy: Literally a legacy, meaning that some of the discarded interfaces are retained to be considered backwards compatible.
- -OCL: Some interfaces that use OpenCL to accelerate in parallel.
- -Superres: Super-resolution module, is actually BTV-L1 (biliteral total variation–l1 regularization) algorithm
- -viz: basic 3D Rendering module, in fact, the bottom is the famous 3D Toolkit VTK (visualization Toolkit).
Resources:
The Python quick tutorial for beginners in deep learning-the PYTHON-OPENCV of the outer chapter
PYTHON-OPENCV Study (i): OPENCV structure