The Open Source Computer Vision Library, or OpenCV if you prefer, houses over 2500 algorithms, extensive documentation and sample code for real-time computer vision.
OpenCV focuses mainly towards real-time image processing, as such, if it finds Intel's Integrated Performance Primitives on the system, it will use these commercial optimized routines to accelerate itself.
OpenCV library supports:
- Real-time capture.
- Video file import.
- Object detection.
- Basic image treatment: brightness, contrast, threshold.
- Blob detection
OpenCV can accomplish numerous different tasks including basic image processing, such as filtering, morphology, geometrical transformations, histograms, and color space transformations. It can also perform advanced image processing like inpainting, watershed & meanshift segmentation etc. OpenCV can also undertake more complex tasks such as contour processing and computational geometry, various feature detectors and descriptors (these can range from simple Harris detector to Hough transform, SURF, or MSER) object tracking, optical flow, object detection using cascades of boosted haar classifiers, camera calibration, and machine learning tools (data clustering and statistical classifiers).
The application is cross-platform and works on Windows, Mac OS X, Linux, Android and iOS.
First of all, 4.0 alpha includes all the latest improvements, optimizations and bug fixes from 3.4 branch. In particular:
ONNX parser has been added to OpenCV DNN module. It supports various classification networks, such as AlexNet, Inception v2, Resnet, VGG etc. The tiny YOLO v2 object detection network is also partially supported.
A few other notable DNN improvements:
Mask RCNN support and the example
Faster object detection when using Intel Inference Engine (a part of Intel OpenVINO)
Several stability improvements in the OpenCL backend.
Fast QR code detector (~80FPS @ 640x480 resolution on Core i5 desktop). By 4.0 gold we plan to add the QR code decoder as well, so that we have a complete solution.
Constantly expanding set of SSE4-, AVX2- and NEON-optimized kernels via so called “wide universal intrinsics”.
Besides, OpenCV 4.0 alpha includes some exclusive features, such as:
OpenCV is C++11 library now and it requires C++11 compliant compiler. Therefore, some nice features like parallel_for with lambda functions, convenient iteration over cv::Mat, initialization of cv::Mat by listing its elements etc. are available by default.
The standard std::string and std::shared_ptr replaced hand-crafted cv::String and cv::Ptr. Our parallel_for can now use the pool of std::threads as the backend.
The legacy C API from OpenCV 1.x (using CvMat, IplImage, etc.) is partially excluded; the cleanup should mostly be finished by OpenCV 4.0 gold.
Added basic FP16 support (the new CV_16F type has been added).
CPU- and GPU-accelerated KinFu live 3d dense reconstruction algorithm has been included into opencv_contrib.
HPX parallel backend (thanks to Jakub Golinowski)
The new chessboard detector (thanks to Alexander Duda)
Overall, OpenCV 4.0 alpha release includes 85 patches, including 28 massive merge requests from 3.4 branch.
Please note that even though the release should be quite stable, quite a few changes in OpenCV API and implementation are yet to be done before 4.0 final.