Comment convertir des images PIL en tableaux NumPy pour une manipulation transparente des pixels ?

Linda Hamilton
Libérer: 2024-11-24 08:59:12
original
156 Les gens l'ont consulté

How to Convert PIL Images to NumPy Arrays for Seamless Pixel Manipulation?

Conversion d'images PIL en tableaux NumPy pour une manipulation améliorée des pixels

Question :

Comment puis-je convertir efficacement une image PIL dans un tableau NumPy pour des transformations transparentes au niveau des pixels ? Bien que la conversion d'une image PIL en un tableau NumPy soit simple à l'aide de numpy.array(pic.getdata()), l'opération inverse pour recharger le tableau modifié en tant qu'image PIL n'est pas aussi intuitive.

Réponse :

La clé pour réussir la mise à jour d'une image PIL à partir d'un tableau NumPy modifié réside dans la compréhension du format de données attendu. Initialement, lors de la récupération du tableau de l'image à l'aide de numpy.array(pic.getdata()), la matrice résultante est bidimensionnelle (lignes et colonnes). Cependant, la manipulation efficace des pixels nécessite un tableau tridimensionnel avec des lignes, des colonnes et des valeurs RVB.

Solution :

Pour résoudre ce problème, appliquez les étapes suivantes :

  1. Convertir l'image PIL en tableau NumPy : Utiliser numpy.array(pic) pour obtenir un tableau NumPy en 3 dimensions avec le format souhaité.
  2. Modifier les pixels dans le tableau NumPy : Effectuez les modifications souhaitées au niveau des pixels sur le tableau NumPy.
  3. Mettre à jour le tableau NumPy modifié dans l'image PIL : Pour remplacer les pixels d'origine par ceux modifiés valeurs, utilisez pic.putdata(pix) ou créez une nouvelle image PIL à l'aide de Image.fromarray(pix).

Notes supplémentaires :

  • Assurez-vous que toutes les modifications apportées au tableau NumPy sont apportées dans la plage de couleurs appropriée (par exemple, 0-255 pour RVB 8 bits images).
  • La conversion de tableaux NumPy en images PIL peut impliquer de remodeler ou d'aplatir le tableau pour l'adapter au format attendu.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal