Open Source Computer Vision popularly known as OpenCV is a library of programming functions that helps in developing real time computer vision applications. It was developed by Intel Corporation in early 2000. The credit of developing the software mainly goes to Mr.Willow Garage. Initially it was developed as a tool to increase the efficiency of CPU intensive applications related to processing as an research initiative, later was released as an open source BSD license for both commercial and public use. OpenCV got a major update and changes in 2009 by introducing new functions, type safe patterns and overall, has been a successful product since its release. According to its website statistics, currently there are 47 thousand people of user community and growing.
OpenCV is basically written and implemented with C++ language. The coding, interpreting and the execution happens with this language. It is platform independent and hence can work on Windows, Linux or Mac. There are now fully developed interfaces for Java, Python, MATLAB and other languages. There are no dedicated IDE’s for the OpenCV and can be run on any present IDE that supports C and C++. Microsoft Visual Studio is the famous tool used for executing OpenCV related codes.
Currently OpenCV is used for developing real time applications related to image processing and vision. Its areas of application include Facial Recognition system, Gesture Recognition, Human Computer Interaction, 3D Printing, Robotics, Motion Tracking and image processing techniques namely segmentation, object identification, pattern recognition and much more. Efficient libraries has been designed to support the above mentioned areas by incorporating algorithms like decision tree learning, k –nearest neighboring method and other classifier methods. Support Vector machine has also been supported.
OpenCV is basically written and implemented with C++ language. The coding, interpreting and the execution happens with this language. It is platform independent and hence can work on Windows, Linux or Mac. There are now fully developed interfaces for Java, Python, MATLAB and other languages. There are no dedicated IDE’s for the OpenCV and can be run on any present IDE that supports C and C++. Microsoft Visual Studio is the famous tool used for executing OpenCV related codes.
Currently OpenCV is used for developing real time applications related to image processing and vision. Its areas of application include Facial Recognition system, Gesture Recognition, Human Computer Interaction, 3D Printing, Robotics, Motion Tracking and image processing techniques namely segmentation, object identification, pattern recognition and much more. Efficient libraries has been designed to support the above mentioned areas by incorporating algorithms like decision tree learning, k –nearest neighboring method and other classifier methods. Support Vector machine has also been supported.
The existing competitor for OpenCV under image processing domain is MATLAB. Both of them are popular with their own designs. MATLAB is written under Java language and hence requires lot of interpretation for execution. OpenCV scores well at this context as it implements C interface and is near to machine level language. The execution time for given code in OpenCV is much more faster when compared to MATLAB. OpenCV also requires less memory and does not overhead CPU Ram comparatively. When it comes to portability, OpenCV is easier as any device that runs C can run this tool whereas MATLAB demands JDK.
OpenCV does have disadvantages. Since it is a C implementation, there are no predefined methods for allocation and de-allocation of memory. These have to be taken care by the developer.
Secondly, there are no libraries, methods for declaring variables, function prototyping, built-in functions as compared to high level scripting nature of MATLAB. Hence the codes are lengthier and demands more attention.
Overall, OpenCV is evolving as an efficient tool for developing real time applications. Due to its C language implementation, it has been attracting many users as most of them are comfortable with C and C++ interface and does not demand to learn new programming techniques.
OpenCV does have disadvantages. Since it is a C implementation, there are no predefined methods for allocation and de-allocation of memory. These have to be taken care by the developer.
Secondly, there are no libraries, methods for declaring variables, function prototyping, built-in functions as compared to high level scripting nature of MATLAB. Hence the codes are lengthier and demands more attention.
Overall, OpenCV is evolving as an efficient tool for developing real time applications. Due to its C language implementation, it has been attracting many users as most of them are comfortable with C and C++ interface and does not demand to learn new programming techniques.
No comments:
Post a Comment