Image processing is a mathematically intensive operation & one of the biggest areas of research for a big data field. Image processing analytics has applications from processing a X-Ray to identifying stationary objects in a self driving car. We have collected a list of Python libraries which can help you in image processing.
PIL (Python Imaging Library) supports opening, manipulating and saving the images in many file formats. It supports various image manipulations like filtering, enhancing, masking, handling transparency, additions and the like.
Pillow is a “friendly fork” to the PIL. Development seems to have stalled on PIL, with last update made before several years, so it is been adopted as a replacement for PIL in several linux distributions. It has to be noted that Pillow and PIL cannot co-exist in the same environment and hence PIL has to be uninstalled before proceeding with Pillow.
Mahotas library provides fast computer vision algorithms like watershed, thinning, thresholding etc implemented in c++. The algorithms can be operated over numpy arrays.
scikit-image library includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection in images. Its mostly written in python except for the parts written in Cython for the sake of performance. It can be interoperated with SciPy and NumPy
scipy.ndimage packages provide a various image processing functions that can be operated with arrays of any dimensionality. The packages currently include functions for linear and non-linear filtering, binary morphology, B-spline interpolation, and object measurements.
PythonMagick is the Python binding of the ImageMagick which is a free software. It supports cropping, changing colors, applying various effects, adding text and geometrical figures etc. It supports reading, modifying and creating images in over 200 file formats.
pycairo is a set of python bindings for the 2D graphics library cairo.They provide an object oriented interface to cairo.The Cairo library can output data to consistently to X Window system, win32 image buffers, pdf, svg files etc.
OpenCV-Python is a Python wrapper for the OpenCV C++ implementation. OpenCV-Python makes use of Numpy. All the OpenCV array structures are converted to and from Numpy arrays. This also makes it easier to integrate with other libraries that use Numpy such as SciPy and Matplotlib.
Insight Segmentation and Registration Toolkit (ITK) provides software tools for image analysis. ITK employs leading-edge algorithms for registering and segmenting multidimensional data. SimpleITK provides a simplified interface to ITK in python and other languages.
This is a part of community edited list here