Manipulation d’images

La plupart des techniques de traitement et de manipulation d’images peuvent être effectuées efficacement en utilisant deux bibliothèques: Python Imaging Library (PIL) et Open Source Computer Vision (OpenCV).

Une brève description des deux est donnée ci-dessous.

Bibliothèque Python Imaging Library (PIL)

La Python Imaging Library, ou PIL, est l’une des bibliothèques de base pour la manipulation d’images en Python. Malheureusement, son développement a stagné, avec sa dernière version en 2009.

Heureusement pour vous, il y a un fork développé activement de PIL appelé Pillow - il est plus facile à installer, fonctionne sur tous les systèmes d’exploitation, et supporte Python 3.

Installation

Avant d’installer Pillow, vous devrez installer les prérequis pour Pillow. Vous trouverez les instructions de votre plate-forme dans les instructions d’installation de Pillow.

Après cela, c’est direct:

$ pip install Pillow

Exemple

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

Il y a plus d’exemples pour la bibliothèque Pillow dans le tutoriel Pillow.

OpenSource Computer Vision (OpenCV)

OpenSource Computer Vision, plus connu comme OpenCV, est un logiciel plus avancé de manipulation et de traitement d’images que PIL. Il a été implémenté en plusieurs langages et est largement utilisé.

Installation

En Python, le traitement d’image en utilisant OpenCV est implémenté en utilisant les modules cv2 et NumPy. Les instructions d’installation pour OpenCV devrait vous guider dans la configuration du projet pour vous-même.

NumPy peut être téléchargé à partir du Python Package Index (PyPI):

$ pip install numpy

Exemple

from cv2 import *
import numpy as np
#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)

Il y a plus d’exemples d’OpenCV implémentés en Python dans cette collection de tutoriels.