I. OpenCV
OpenCV is one of the most famous and widely used open source libraries for computer vision tasks such as image processing, target detection, face detection, image segmentation, face recognition and more. Apart from that, it can also be used for machine learning tasks.
This was developed by Intel in 2002. It is written in C++, but the developers have provided Python and java bindings. It is easy to read and use.
To build computer vision and machine learning models, OpenCV has over 2500 algorithms. These algorithms are very useful for performing various tasks such as face recognition, target detection, etc. Let's see some examples that can be executed using OpenCV:
grayscale scaling
Grayscale scaling is a method of converting a 3-channel image (e.g. RGB, HSV, etc.) to a single-channel image (i.e. grayscale). The final image varies between all white and all black. The importance of grayscale scaling includes dimensionality reduction (converting a 3-channel image to a single-channel image), reducing model complexity, etc.
The following code snippet shows grayscale scaling in OpenCV
import cv2 as cv img = ('') ('Original', img) () #Use cvtColor, to convert to grayscale gray_img = (img, cv.COLOR_BGR2GRAY) ('Grayscale', gray_img) (0)
rotate an image
OpenCV helps to rotate the image using any angle from 0 to 360 degrees.
Check the following code to rotate the image 180 degrees.
import cv2 as cv import as plt img = ('') h, w = [:2] rot_matrix = cv.getRotationMatrix2D((w/2,h/2), -180, 0.5) rot_image = (img, rot_matrix, (w, h)) ((rot_image, cv.COLOR_BGR2RGB))
OpenCV also provides other features other than the ones we have discussed so far. Apart from this, it helps in face detection, image segmentation, feature extraction, target detection, 3D reconstruction, etc.
For more information, see the official documentation:/
II. Scikit-Image
Scikit Image is another great open source image processing library. It is suitable for almost any computer vision task. It is one of the simplest and most straightforward libraries available. Some parts of this library are written in Cython (which is a superset of the python programming language, designed to make python faster than C).
It provides a large number of algorithms including segmentation, color space manipulation, geometric transformations, filtering, morphology, feature detection, and more.
Scikit Image uses Numpy arrays as image objects. Let's see how to perform active contour operations in scikit image.Active contours describe the boundaries of shapes in an image.
Check the following activity profile operation codes:
import numpy as np import as plt from import rgb2gray from skimage import data from import gaussian from import active_contour image = () # Data for circular boundary s = (0, 2*, 400) x = 220 + 100*(s) y = 100 + 100*(s) init = ([x, y]).T # formation of the active contour centre = active_contour(gaussian(image, 3),init, alpha=0.015, beta=10, gamma=0.001) figure, axis = (1, 2, figsize=(7, 7)) ax[0].imshow(image, cmap=) ax[0].set_title("Original Image") ax[1].imshow(image, cmap=)
For more information, see the official documentation:/docs/stable/auto_examples/
III. Scipy
SciPy is primarily used for mathematical and scientific computation, but sub-modules are sometimes available for basic image manipulation and processing tasks.
Ultimately, images are just multidimensional arrays, and SciPy provides a set of functions for manipulating n-dimensional Numpy operations.SciPy provides a number of basic image processing operations, such as face detection, convolution, image segmentation, image reading, feature extraction, and so on.
In addition to this, filtering can be performed to draw contour lines on the image.
Please check the following code to blur an image using SciPy:
from scipy import ndimage, misc from matplotlib import pyplot as plt f = () b_face = ndimage.gaussian_filter(f, sigma=3) figure, axis = (1, 2, figsize=(16, 8))
For more information, see the official documentation:/doc/scipy/reference/
IV. Python Image Library (Pillow/PIL)
It is an open source python library for image processing tasks. It provides special features not usually provided by other libraries such as filtering, opening, manipulating and saving images. This library supports multiple file formats which makes it more efficient.PIL also supports image processing, image display and image archiving. Let's look at image enhancement using Pillow/PIL.
Changes the sharpness of the image:
For more information, see the official documentation:/en/stable/
V. Matplotlib
Matplotlib is mainly used for 2D visualization such as scatter plots, bar charts, histograms, etc. but we can also use it for image processing. It is effective to extract information from images. It does not support all file formats.
After the background color change operation, check the following images:
For more information, see the official documentation:/stable/tutorials/introductory/
VI. SimpleITK
It is also known as Image Segmentation and Registration Toolkit. It is an open source library for image registration and image segmentation. Libraries like OpenCV treat an image as an array, but this library treats an image as a set of points on a region in space. Check the following example:
image segmentation
For more information, please see the official documentation at /
VII. Numpy
It is an open source python library for numerical analysis. It contains a matrix and multidimensional arrays as data structures. But NumPy can also be used for image processing tasks such as image cropping, manipulating pixels and masking of pixel values.
Check the chart below to extract the green/red/blue channels from the image:
For more information, see the official documentation:/docs/dev/user_guide/numpy_images.html
VIII. Mahotas
It is another open source python library for computer vision and image processing. It is designed for bioinformatics. It provides a lot of algorithms which are written in C++, are fast and use a good Python interface. It reads and writes images in NumPy arrays.
Use Mahotas to check the template below for matching images:
For more information, see the official documentation:/en/latest/#
To this point this article on the 2021 for image processing Python library summary of the article is introduced to this, more related Python image processing library content please search my previous posts or continue to browse the following related articles I hope that you will support me in the future more!