Tools For Image Processing
For any every technology ever created, tons of software and tools have been developed, so one should properly know each and every option available, to be equipped with the most appropriate tools which are suitable to the work.
So here we are with yet another article of our series — Image Vision. In this article we are gonna talk briefly about the various tools that can be used for better implementation of Image processing/Computer Vision.
MATLAB :When it comes to image processing what can be more flexible than MATLAB. It stands for “Matrix Laboratory”, a fourth-generation high-level programming language developed by MathWorks(U.S). It was created in the year 1984 with an objective to provide interactive environment for computation, visualisation and programming. It is written in C, C++ and Java. MATLAB is used in every facet of computational mathematics. Mathematical calculations where it is most commonly used include- matrix and array manipulations, linear algebra, algebraic equations, statistics, calculus, integration, transformation, etc. It has wide range of applications including signal processing, image and video processing, control systems, computer vision, AI, etc. MATLAB is the most popular software used in the field of Digital Image Processing. However it is not open source, an user has to pay for licensed MATLAB interpreter.
GNU Octave : GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations developed by It is one of the major free alternatives to MATLAB. It was developed by John W. Eaton and his team in the year of 1998 as a part of the GNU project in C++ using the C++ standard library. It tends to be syntactically compatible with MATLAB having some common features like- matrices are fundamental data type, built-in support for complex numbers, built-in math functions and libraries, etc. It is a free software under the terms of the GNU General Public License.
OpenCV : It is an Open-Source library of programming functions mainly aimed at real-time computer vision.It is written in C++. The name is an acronym for “Open Source Computer Vision”. It was originally developed by intel in 1999 and later supported by Willow Garage and Itseez. The library is cross-platform and free for use under the open-source BSD license. It also supports supports the deep learning frameworks TensorFlow, Torch/PyTorch and Caffe. The various applications of OpenCV include : facial recognition, gesture recognition, human-computer interaction, mobile robotics, segmentation, etc. It also includes a statistical machine learning library that contains : boosting, decision tree making, KNN algorithm, artificial neural networks, random forest, support vector machines(SVM) and Deep Neural Networks(DNN).
Scikit-Image : It is an open source image processing library for the Python programming language. It includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection, and more. It is designed to inter-operate with the Python numerical and scientific libraries NumPy and SciPy. The project was released in the year 2009 by Stéfan van der Walt. It is largely written in Python, with some core algorithms written in Cython to achieve performance.
Scilab : Scilab is a high-level, numerically oriented programming language. The language provides an interpreted programming environment, with matrices as the main data type. By using matrix-based computation, dynamic typing, and automatic memory management, many numerical problems may be expressed in a reduced number of code lines. It was developed by Scilab Enterprises written in C, C++, Java and Fortran. It puts less emphasis on (bidirectional) syntactic compatibility with MATLAB than Octave does, but it is similar enough that some authors suggest that it is easy to transfer skills between the two systems. “SIP” is a toolbox for processing images in Scilab. Its goals include tasks such as filtering, blurring, edge detection, thresholding, histogram manipulation, segmentation, mathematical morphology, and color image processing. It is still in its early phases of development.
AForge.NET/Accord.NET : AForge.NET is an open source computer vision and artificial intelligence library originally developed by Andrew Kirillov for the .NET Framework written in C#and licensed under GPL(GNU General Public License). On April 1, 2012 the end of the public support for the library was announced. Since then another framework Accord.net started to incorporate most of the original AForge.NET source code in its codebase, continuing its support and development. The frameworks API includes support for computer vision, image and video processing, artificial neural networks and machine learning.
VXL : The Vision-something-Library, is a collection of open source C++ libraries for computer vision. The idea is to replace X with one of many letters, i.e. G (VGL) is a geometry library, N (VNL) is a numerics library, I (VIL) is an image processing library, etc. These libraries can be used for general scientific computing as well as computer vision. VXL is used in academia, industry. Its notable users include Brown University, University of Oxford (Robots Research Group), GE Global Research and University of Manchester.
CVIPtools : Computer Vision and Image Processing Tools is an Open Source image processing software. It was developed at the Computer Vision and Image Processing Laboratory at Southern Illinois University at Edwardsville. It is written using C, C++ and C#.
BoofCV : BoofCV is an open source Java library for real-time computer vision and robotics applications. It provides both basic and advanced features needed for creating a computer vision system. It was developed by Peter Abeles, Senior Computer Vision Engineer at Tesla. The library is released under a BSD license for both academic and commercial use.
To learn more about these softwares, you can check out the following links :
https://www.mathworks.com/products/matlab.html
https://opencv.org/about.html
https://www.gnu.org/software/octave/about.html
https://www.scilab.org/scilab/about
http://accord-framework.net/intro.html
http://scikit-image.org/
http://vxl.sourceforge.net/
https://cviptools.ece.siue.edu/
https://boofcv.org/index.php?title=Manual