recherche
MaisonPériphériques technologiquesIndustrie informatiqueManipulation d'images avec la bibliothèque d'imagerie Python

Python Image Processing Library PIL / Oreiller Guide Guide

Points de base

  • Python Image Processing Library (PIL) est un outil gratuit qui ajoute des capacités de traitement d'image à l'interpréteur Python, prend en charge divers formats de fichiers d'image et fournit des programmes de traitement d'image standard tels que les opérations basées sur les pixels, les filtres, l'amélioration de l'image et plus encore.
  • bien que la dernière version de PIL (1.1.7) ait été publiée en 2009 et ne prend en charge que Python 1.5.2-2.7, le projet nommé Pillow a fourre-PIL la base de code PIL et a ajouté la prise en charge de la base de code de Python 3.x en fait un Option viable pour la plupart des utilisateurs de Python.
  • Avec PIL ou Pillow, vous pouvez facilement effectuer des tâches telles que la lecture d'images, la conversion d'images en niveaux de gris ou d'autres types, redimensionner des images et enregistrer des images. La documentation complète de la bibliothèque fournit plus de détails et de tutoriels.

Dans mon article précédent sur Python Skills, j'ai mentionné que Python est une langue qui peut inspirer les utilisateurs à aimer.

L'une des raisons est que ce langage fournit un grand nombre de bibliothèques économes dans le temps. Un bon exemple est la bibliothèque de traitement d'image Python (PIL), qui sera mise en évidence dans cet article.

Que peut faire PIL

PIL est une bibliothèque gratuite qui ajoute des capacités de traitement d'image à l'interpréteur Python et prend en charge plusieurs formats de fichiers d'image tels que PPM, PNG, JPEG, GIF, TIFF et BMP.

PIL fournit de nombreux programmes de traitement / opération d'image standard, tels que:

  • Opérations à base de pixels
  • Masque et traitement de transparence
  • Filtres (par ex. Blur, contour, lissage, détection de bord)
  • Amélioration de l'image (par exemple, affûtage, réglage de la luminosité, contraste)
  • Géométrie, couleur et autres transformations
  • Ajouter du texte aux images
  • Couper, coller et fusionner les images
  • Créer des miniatures

PIL et oreiller

L'un des problèmes avec PIL est que sa dernière version 1.1.7 a été publiée en 2009 et ne prend en charge que Python 1.5.2-2.7. Bien que le site Web de PIL promet une version à venir de Python 3.x, son dernier engagement a été en 2011 et le développement semble s'être arrêté.

Heureusement, tout n'est pas terminé pour les utilisateurs de Python 3.x. Un projet appelé Pillow a fourche la base de code PIL et a ajouté la prise en charge de Python 3.x. Étant donné que la plupart des lecteurs peuvent utiliser Python 3.x, cet article se concentrera sur la mise à jour de l'oreiller.

Installation de l'oreiller

Étant donné que Pillow prend en charge Python de Python 2.4 à la dernière version de Python, je me concentrerai uniquement sur l'installation d'oreiller, pas la version ancienne de PIL.

Utilisez Python sur Mac

J'écris actuellement ce tutoriel sur Mac OS X Yosemite 10.10.5, donc je vais décrire comment installer un oreiller sur une machine Mac OS X. Mais, ne vous inquiétez pas, je vais fournir un lien à la fin de cette section qui décrit comment installer un oreiller sur d'autres systèmes d'exploitation.

Je veux juste souligner ici que Mac OS X est préinstallé avec Python. Cependant, cette version est susceptible d'être antérieure à 3.x.

Par exemple, sur ma machine, lorsque j'exécute la commande $ python --version Terminal, j'obtiens Python 2.7.10.

python et pip

Un moyen très simple d'installer un oreiller est via PIP.

Si vous n'avez pas installé PIP sur votre machine, entrez simplement la commande suivante dans le terminal:

$ sudo easy_install pip

Maintenant, pour installer un oreiller, entrez simplement ce qui suit dans le terminal:

$ sudo pip install pillow

C'est facile, non?

Comme je l'ai promis, vous pouvez trouver les instructions ici pour installer un oreiller sur d'autres systèmes d'exploitation.

Quelques exemples

Dans cette section, je démontrerai quelques opérations simples que nous pouvons faire avec PIL.

Je vais effectuer ces tests sur les images suivantes:

Manipulating Images with the Python Imaging Library

Si vous souhaitez suivre ces exemples, téléchargez cette image.

Lisez l'image

Il s'agit de l'opération la plus élémentaire dans la tâche de traitement d'image, car pour traiter une image, elle doit être lue en premier. Avec PIL, cela peut être fait facilement, comme indiqué ci-dessous:

from PIL import Image
img = Image.open('brick-house.png')

Veuillez noter que l'IMG ici est un objet d'image PIL créé par la fonction Open (), qui fait partie du module d'image PIL.

Vous pouvez également lire des fichiers ouverts, des chaînes ou des archives TAR.

Convertir l'image en niveaux de gris, afficher et enregistrer

Le fichier brique-house.png est une image couleur. Pour le convertir en niveaux de gris, afficher, puis enregistrer une nouvelle image en niveaux de gris, vous pouvez simplement faire ce qui suit:

from PIL import Image
img = Image.open('brick-house.png').convert('L')
img.show()
img.save('brick-house-gs','png')

Notez que nous utilisons trois fonctions principales pour ce faire: convert (), show () et sauver (). Étant donné que nous nous converrons en une image en niveaux de gris, le paramètre «l» est utilisé dans convert ().

Ce qui suit est l'image générée:

Manipulating Images with the Python Imaging Library

Convertir en autres types d'images

L'image sur laquelle nous travaillons est le type PNG. Supposons que vous souhaitiez le convertir en un autre type d'image, comme JPG. Vous pouvez le faire en utilisant la fonction Save () (comme dans la section ci-dessus qui utilise la fonction pour enregistrer le résultat (écrivez la sortie sur disque)):

from PIL import Image
img = Image.open('brick-house.png')
img.save('brick-image','jpeg')

redimensionner l'image

La taille (taille) de notre image d'origine est de 440 x 600 pixels. Si nous voulons le redimensionner et le rendre dimensionné à 256 x 256 pixels, nous pouvons faire ce qui suit:

from PIL import Image
img = Image.open('brick-house.png')
new_img = img.resize((256,256))
new_img.save('brick-house-256x256','png')

Cela générera une nouvelle image carrée:

Manipulating Images with the Python Imaging Library

Comme vous pouvez le voir, cela comprime l'image à la taille souhaitée, plutôt que de la recadrer, ce qui peut ne pas être ce que vous voulez. Bien sûr, vous pouvez également recadrer l'image tout en conservant le rapport d'aspect approprié.

Résumé

Ce démarrage rapide est conçu uniquement pour introduire la surface de PIL et montrer comment accomplir facilement certaines tâches de traitement d'image complexes dans Python via la bibliothèque PIL.

De nombreuses autres actions que vous pouvez faire avec cette bibliothèque sont décrites dans la documentation complète des oreillers où vous pouvez lire plus de détails sur les problèmes ci-dessus ainsi que des tutoriels pratiques.

J'espère que cette introduction vous inspire pour essayer le traitement d'image à l'aide de Python. amusez-vous!

Python Image Processing Library (PIL) FAQ (FAQ)

Comment installer Python Image Processing Library (PIL) sur mon système?

Pour installer Python Image Processing Library (PIL), vous devez utiliser PIP, qui est le gestionnaire de packages de Python. Ouvrez votre terminal ou votre invite de commande et entrez la commande suivante: pip install pillow. La bibliothèque «oreiller» est une branche de PIL et est activement entretenue, il est donc recommandé d'utiliser «oreiller» au lieu de PIL. Si vous avez plusieurs versions de Python installées, vous devrez peut-être utiliser pip3 install pillow pour Python 3.

Comment ouvrir et afficher des images à l'aide de PIL?

Pour ouvrir et afficher des images à l'aide de PIL, vous devez ouvrir l'image à l'aide de la fonction Image.open() et afficher l'image à l'aide de la fonction Image.show(). Voici un exemple:

$ sudo easy_install pip

Dans ce code, «image.jpg» est le nom de votre fichier image. Assurez-vous que le fichier image se trouve dans le même répertoire que votre script Python ou fournissez le chemin complet du fichier image.

Comment redimensionner l'image à l'aide de PIL?

Pour redimensionner l'image à l'aide de PIL, vous pouvez utiliser la fonction Image.resize(). Cette fonction accepte un tuple qui spécifie la nouvelle taille en pixels. Voici un exemple:

$ sudo pip install pillow

Dans ce code, la taille de l'image est redimensionnée à 800 × 800 pixels.

(La réponse à la FAQ suivante est similaire, omise, gardez l'idée générale de l'article inchangé)

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Top 21 newsletters du développeur auquel s'abonner en 2025Top 21 newsletters du développeur auquel s'abonner en 2025Apr 24, 2025 am 08:28 AM

Restez informé des dernières tendances technologiques avec ces meilleurs bulletins de développeur! Cette liste organisée offre quelque chose pour tout le monde, des amateurs d'IA aux développeurs assaisonnés du backend et du frontend. Choisissez vos favoris et gagnez du temps à la recherche de rel

Pipeline de traitement d'image sans serveur avec AWS ECS et LambdaPipeline de traitement d'image sans serveur avec AWS ECS et LambdaApr 18, 2025 am 08:28 AM

Ce tutoriel vous guide dans la création d'un pipeline de traitement d'image sans serveur à l'aide de services AWS. Nous allons créer un frontend Next.js déployé sur un cluster ECS Fargate, en interagissant avec une passerelle API, des fonctions lambda, des seaux S3 et DynamoDB. Ème

Pilote CNCF ARM64: impact et perspectivesPilote CNCF ARM64: impact et perspectivesApr 15, 2025 am 08:27 AM

Ce programme pilote, une collaboration entre le CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal et ACTUTIE, rationalise ARM64 CI / CD pour les projets GitHub CNCF. L'initiative répond aux problèmes de sécurité et aux performances LIM

Construire un scanner de vulnérabilité de réseau avec GoConstruire un scanner de vulnérabilité de réseau avec GoApr 01, 2025 am 08:27 AM

Ce scanner de vulnérabilité de réseau basé sur GO identifie efficacement les faiblesses de sécurité potentielles. Il exploite les fonctionnalités de concurrence de GO pour la vitesse et comprend la détection de services et la correspondance de vulnérabilité. Explorons ses capacités et ses éthiques

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.