Several years ago, software developers always had to write programming code from scratch for every new functionality that is to be implemented in any project. This system can be a nightmare for most people as it is inefficient and time-consuming. Writing from scratch also implies that you will have a lot of debugging to do.
Interest has shifted towards developers that can produce functional code of high quality within the shortest possible time. Whether everything was done from scratch or not is irrelevant. OpenCV makes it possible for you to integrate a lot of functionalities and designs into your work regardless of how complex your project seems.
How Can OpenCV be Useful
OpenCV (Open Source Computer Vision) is a computer program that offers several free algorithms with permission to alter the source code for each one. A developer can use these algorithms to improve the capabilities of a software or web application without having to write the code from scratch. The program features a couple of interfaces for various platforms including Windows, Linux, Mac OS, Android, and iOS. It supports programming languages like Java, Python, and C++. OpenCV is able to exploit multi-core architecture which is helpful when you need to restructure and parallelize your code. This allows you access to the same functions or methods in different threads.
There are several different modules that are available to developers on OpenCV. The Core module can be used to define the basic data structures and functions to be implemented by other modules. The High-Level GUI module gives you access to simple UI designs and the image processing module gives you access to a lot of editing options for images. There are modules for 3D reconstruction and camera calibration as well as salient feature detection. The video modules can be used in making videos as well as analysis through object tracking algorithms for background subtraction and motion estimation. Instances of predefined classes can be detected with the help of the Object Detection module. This feature comes in handy for developers of face detection software and security systems.
A number of algorithms can be implemented from the GPU module enabling you to take advantage of GPU computational capabilities for improved performance. OpenCV automatically allocates and deallocates data for better memory management. Its error-handling capabilities ensure that you are able to debug your code with ease.
Accuracy tests for all OpenCV modules are available to ensure that they are producing the required output.
OpenCV Key Features Include:
- Regression tests for all modules;
- Error handling capabilities;
- Automatic memory management;
- Several modules for the best possible performance;
- Supports various interfaces for multiple platforms;
- Supports multithreading enabling you to parallelize your code.
OpenCV can efficiently handle a lot of complex tasks while taking advantage of your hardware acceleration for the best results. It is used by individuals, companies, government bodies and research groups in different fields from augmented reality to interactive art and lots more.
What's new in 4.1.2 version?
Intel(R) Inference Engine backend (OpenVINO(TM)):
- 2019R3 has been supported
- Support modern IE Core API
- New approach for unsupported layers management. Now all the OpenCV layers fallbacks are implemented as IE custom layers which helps to improve efficiency due less graph partitioning.
- High-level API which introduces dnn::Model class and set of task-specific classes such dnn::ClassificationModel, dnn::DetectionModel, dnn::SegmentationModel. It supports automatic pre- and post-processing for deep learning networks.
Performance improvements and platforms support:
- MSA SIMD implementation has been contributed for MIPS platforms: https://github.com/opencv/opencv/pull/15422
- OpenCV.js optimization (threading and SIMD as part of GSoC project): https://github.com/opencv/opencv/pull/15371
- More optimizations using SIMD intrinsics: dotProd, FAST corners, HOG, LK pyramid (VSX), norm, warpPerspective, etc
- Fixed detection of Cascade Lake
And many other great patches from OpenCV community:
- GUI: support topmost window mode (Win32/COCOA): https://github.com/opencv/opencv/pull/14872
- Java: fix Mat.toString() for higher dimensions: https://github.com/opencv/opencv/pull/15181
- Implementation of colormap "Turbo" https://github.com/opencv/opencv/pull/15388
- QR-Code detection accuracy improvement: https://github.com/opencv/opencv/pull/15356
- GSoC: Add learning-based super-resolution module: https://github.com/opencv/opencv_contrib/pull/2229 and https://github.com/opencv/opencv_contrib/pull/2231
- Detection accuracy improvement of the white marker aruco corners: https://github.com/opencv/opencv_contrib/pull/2236
- Added pattern generator tool for aruco: https://github.com/opencv/opencv_contrib/pull/2250
- and special thanks to @sturkmen72 for improvind and cleaning up code of samples/tutorials
- fixed values thresholding accuracy in calcHist()
Last Updated: 2019-10-10
Developer: OpenCV team
File size: 203.48 MB
Operating system: Windows 10, Windows 8/8.1, Windows 7, Windows Vista, Windows XP
MD5 Checksum: f1e1d3424daf97a6fa1820ddfa85a03c