Maison > Article > développement back-end > Top 10 des outils de traitement d'images en Python
Le monde d’aujourd’hui regorge de toutes sortes de données, et les images en constituent une partie très importante. Cependant, pour que cela soit utile, nous devons traiter ces images. Le traitement d'image est le processus d'analyse et de manipulation d'images numériques dans le but d'améliorer leur qualité ou d'en extraire certaines informations, puis de les utiliser d'une manière ou d'une autre.
Les tâches courantes dans le traitement d'images incluent l'affichage des images, les opérations de base (telles que le recadrage, le retournement, la rotation, etc.), la segmentation d'images, la classification et l'extraction de caractéristiques, la restauration d'images et la reconnaissance d'images, etc. Python est le meilleur choix pour les tâches de traitement d'images en raison de la popularité croissante de ce langage de programmation scientifique et de la disponibilité gratuite de nombreux outils de traitement d'images de pointe.
Jetons un coup d'œil à quelques bibliothèques Python courantes utilisées pour les tâches de traitement d'images.
scikit-image est un package Python open source basé sur des tableaux numpy. Il implémente des algorithmes et des utilitaires pour la recherche, l'éducation et les applications industrielles. C'est une bibliothèque assez simple, même pour ceux qui découvrent Python. Le code de la bibliothèque est de très haute qualité et a été révisé par des pairs, rédigé par une communauté active de bénévoles.
Exemples d'utilisation : filtrage d'images, correspondance de modèles.
Vous pouvez utiliser "skimage" pour importer cette bibliothèque. La plupart des fonctionnalités peuvent être trouvées dans les sous-modules.
import matplotlib.pyplot as plt %matplotlib inline from skimage import data,filters image = data.coins() # ... or any other NumPy array! edges = filters.sobel(image) plt.imshow(edges, cmap='gray')
Correspondance de modèles (à l'aide de la fonction match_template)
Numpy est l'une des bibliothèques principales de la programmation Python et prend en charge les structures de tableaux. Les images sont essentiellement des tableaux Numpy standard contenant des pixels de points de données. Par conséquent, les valeurs de pixels d'une image peuvent être modifiées à l'aide d'opérations NumPy de base, telles que le découpage, le masquage et l'indexation sophistiquée. Les images peuvent être chargées à l'aide de skimage et affichées à l'aide de matplotlib.
Exemple d'utilisation : utilisez Numpy pour désensibiliser les images :
import numpy as np from skimage import data import matplotlib.pyplot as plt %matplotlib inline image = data.camera() type(image) numpy.ndarray #Image is a numpy array mask = image < 87 image[mask]=255 plt.imshow(image, cmap='gray')
scipy est un autre module scientifique de base de Python, tout comme Numpy, il peut être utilisé pour le traitement et le traitement d'images de base. Il convient de mentionner que le sous-module scipy.ndimage fournit des fonctions qui fonctionnent sur des tableaux NumPy à n dimensions. Le package comprend actuellement des fonctionnalités telles que le filtrage linéaire et non linéaire, la morphologie binaire, l'interpolation B-spline et les mesures d'objets.
Exemple d'utilisation : utilisez le filtre gaussien de SciPy pour flouter l'image :
from scipy import misc,ndimage face = misc.face() blurred_face = ndimage.gaussian_filter(face, sigma=3) very_blurred = ndimage.gaussian_filter(face, sigma=5) #Results plt.imshow(<image to be displayed>)
PIL (Python Imaging Library) est une bibliothèque de langage de programmation Python gratuite qui ajoute la prise en charge de l'ouverture, du traitement et de l'enregistrement. prise en charge de nombreux formats de fichiers image différents. Cependant, son développement est au point mort et sa dernière mise à jour remonte à 2009. Heureusement, PIL a un fork en cours de développement appelé Pillow, qui est très facile à installer. Pillow fonctionne sur tous les principaux systèmes d'exploitation et prend en charge Python 3. La bibliothèque contient des fonctions de traitement d'image de base, notamment des opérations ponctuelles, un filtrage à l'aide d'un ensemble de noyaux de convolution intégrés et une conversion d'espace colorimétrique.
Exemple d'utilisation : utilisez ImageFilter pour améliorer les images dans Pillow :
from PIL import Image, ImageFilter #Read image im = Image.open( 'image.jpg' ) #Display image im.show() from PIL import ImageEnhance enh = ImageEnhance.Contrast(im) enh.enhance(1.8).show("30% more contrast")
OpenCV (Open Source Computer Vision Library) est la bibliothèque la plus largement utilisée dans les applications de vision par ordinateur. OpenCV-Python est l'API python d'OpenCV. OpenCV-Python est non seulement rapide (car le backend est constitué de code écrit en C/C++), mais aussi facile à coder et à déployer (grâce au wrapper Python sur le frontend). Cela en fait un excellent choix pour exécuter des programmes de vision par ordinateur intensifs en calcul.
Exemple d'utilisation : utilisez des pyramides pour créer un nouveau fruit appelé fonction "Orapple"
SimpleCV est également un framework open source pour créer des applications de vision par ordinateur. Il donne accès à des bibliothèques de vision par ordinateur hautes performances telles qu'OpenCV sans avoir à comprendre au préalable la profondeur de bits, les formats de fichiers ou les espaces colorimétriques. C'est beaucoup plus facile à apprendre qu'OpenCV, et comme le dit leur slogan : "Cela rend la vision par ordinateur facile". Certains points en faveur de SimpleCV sont :
Exemples d'utilisation
Mahotas est une autre bibliothèque de vision par ordinateur et de traitement d'images pour Python. Il contient des fonctions traditionnelles de traitement d'image (telles que le filtrage et les opérations morphologiques) ainsi que des fonctions de vision par ordinateur plus modernes pour le calcul des caractéristiques (y compris la détection de points d'intérêt et les descripteurs locaux). L'interface est en Python, adaptée à un développement rapide, mais les algorithmes sont implémentés en C++ et optimisés pour la vitesse. La bibliothèque Mahotas est rapide, son code est simple et ses dépendances (sur d'autres bibliothèques) sont minimes. Il est recommandé de lire leur documentation officielle pour en savoir plus.
Exemples d'utilisation
La bibliothèque Mahotas utilise un code simple pour faire le travail. Pour le problème "Finding Wally", Mahotas a fait un excellent travail avec une très petite quantité de code.
ITK (Insight Segmentation and Registration Toolkit) est un système multiplateforme open source qui fournit aux développeurs un ensemble complet d'outils logiciels pour l'analyse d'images. Parmi eux, SimpleITK est une couche simplifiée construite sur ITK, visant à promouvoir son utilisation dans les langages de prototypage rapide, d'éducation et de script. SimpleITK est une boîte à outils d'analyse d'images avec un grand nombre de composants prenant en charge les opérations générales de filtrage, la segmentation et l'enregistrement des images. SimpleITK lui-même est écrit en C++, mais est disponible pour un grand nombre de langages de programmation, dont Python.
Voici un ensemble de cahiers Jupyter illustrant comment utiliser SimpleITK pour des activités éducatives et de recherche. Le bloc-notes montre comment utiliser SimpleITK pour l'analyse d'images interactives à l'aide des langages de programmation Python et R.
Exemples d'utilisation
L'animation ci-dessous est une visualisation du processus rigoureux d'enregistrement CT/MR créé à l'aide de SimpleITK et Python.
pgmagick est un wrapper basé sur Python pour la bibliothèque GraphicsMagick. Le système de traitement d'image GraphicsMagick est parfois appelé le couteau suisse du traitement d'image. Il fournit une collection puissante et efficace d'outils et de bibliothèques prenant en charge la lecture, l'écriture et la manipulation d'images dans plus de 88 formats principaux, y compris des formats importants tels que DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM et TIFF. .
Exemples d'utilisation : mise à l'échelle de l'image, extraction des bords
mise à l'échelle de l'image
extraction des bords
Pycairo est un ensemble de liaisons python pour la bibliothèque graphique ca. iro. Cairo est une bibliothèque graphique 2D permettant de dessiner des graphiques vectoriels. Les graphiques vectoriels sont intéressants car ils ne perdent pas en clarté lorsqu'ils sont redimensionnés ou transformés. La bibliothèque Pycairo peut appeler la commande cairo depuis Python.
Utilisation : Pycairo peut dessiner des lignes, des formes de base et des dégradés radiaux.
Ci-dessus sont quelques bibliothèques Python de traitement d'image gratuites et excellentes. Certains sont bien connus que vous connaissez peut-être déjà ou avez utilisés, et d’autres peuvent être nouveaux pour vous. Alors il est temps de commencer maintenant et d’essayer !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!