Image Manipulation
Most image processing and manipulation techniques can be carried outeffectively using two libraries: Python Imaging Library (PIL) and Open SourceComputer Vision (OpenCV).
A brief description of both is given below.
Python Imaging Library
The Python Imaging Library, or PILfor short, is one of the core libraries for image manipulation in Python. Unfortunately,its development has stagnated, with its last release in 2009.
Luckily for you, there’s an actively-developed fork of PIL calledPillow – it’s easier to install, runs onall major operating systems, and supports Python 3.
Installation
Before installing Pillow, you’ll have to install Pillow’s prerequisites. Findthe instructions for your platform in thePillow installation instructions.
After that, it’s straightforward:
- $ pip install Pillow
Example
- from PIL import Image, ImageFilter
- #Read image
- im = Image.open( 'image.jpg' )
- #Display image
- im.show()
- #Applying a filter to the image
- im_sharp = im.filter( ImageFilter.SHARPEN )
- #Saving the filtered image to a new file
- im_sharp.save( 'image_sharpened.jpg', 'JPEG' )
- #Splitting the image into its respective bands, i.e. Red, Green,
- #and Blue for RGB
- r,g,b = im_sharp.split()
- #Viewing EXIF data embedded in image
- exif_data = im._getexif()
- exif_data
There are more examples of the Pillow library in thePillow tutorial.
Open Source Computer Vision
Open Source Computer Vision, more commonly known as OpenCV, is a more advancedimage manipulation and processing software than PIL. It has been implementedin several languages and is widely used.
Installation
In Python, image processing using OpenCV is implemented using the cv2
andNumPy
modules. The installation instructions for OpenCVshould guide you through configuring the project for yourself.
NumPy can be downloaded from the Python Package Index(PyPI):
- $ pip install numpy
Example
- import cv2
- #Read Image
- img = cv2.imread('testimg.jpg')
- #Display Image
- cv2.imshow('image',img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
- #Applying Grayscale filter to image
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- #Saving filtered image to new file
- cv2.imwrite('graytest.jpg',gray)
There are more Python-implemented examples of OpenCV in this collection oftutorials.