Maison >développement back-end >Tutoriel Python >Comment convertir efficacement les images PIL en tableaux NumPy pour la manipulation des pixels et inversement ?
Question : Comment pouvez-vous convertir une image PIL en tableau NumPy pour des pixels plus rapides transformations intelligentes sans rencontrer de problèmes lors de la reconversion vers un PIL Image ?
Réponse :
Le processus comporte deux étapes :
Pour convertir un PIL Image dans un tableau NumPy, vous pouvez utiliser ce code comme exemple :
pic = Image.open("foo.jpg") pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Utilisation de pic.putdata() :
Si pic.putdata() est ne se comporte pas comme prévu lorsque vous tentez de charger le tableau modifié dans l'image PIL, vérifiez que vous fournissez les données dans un format accepté par putdata(). Il attend une séquence de tuples, vous devrez donc peut-être convertir le tableau dans ce format, comme indiqué ci-dessous :
data = list(tuple(pixel) for pixel in pix) pic.putdata(data)
Utilisation de PIL 1.1.6 :
Depuis PIL 1.1.6, vous pouvez utiliser l'approche simplifiée suivante pour la conversion entre les images et NumPy tableaux :
pix = numpy.array(pic)
Cela donnera lieu à un tableau tridimensionnel avec des lignes, des colonnes et des valeurs RVB.
Étapes finales :
Après avoir apporté des modifications au tableau, vous pouvez utiliser pic.putdata(pix) ou Image.fromarray(pix) pour créer un nouveau PIL. Image.
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!