La conversion de l'image en noir et blanc, et l'utiliser comme tableau
Je suis en train de convertir une image couleur en image noir et blanc.
L'image d'origine est la suivante:
J'ai quelques problèmes. Première:
import pylab as pl
import Image
im = Image.open('joconde.png')
pl.imshow(im)
pl.axis('off')
pl.show()
J'obtiens ceci:
Pourquoi est-il tourné? Ce n'est pas la question, mais j'aimerais savoir pourquoi.
im_gray = im.convert('1')
pl.imshow(im_gray)
pl.show()
Et voici au traitement de l'image en noir et blanc:
Maintenant tout à l'air de fonctionner. Mais j'ai besoin d'utiliser cette image comme un tableau numpy afin de faire un peu de traitement d'image. Tout ce que j'ai à faire est ceci:
import numpy as np
im_arr = np.array(im_gray)
pl.imshow(im_arr)
pl.axis('off')
pl.show()
Mais j'obtiens ceci:
Pourquoi est-ce arrivé? J'ai essayé aussi:
im_arr = np.array(im_gray, dtype='float')
ou:
im_arr = np.asarray(im_gray)
Mais rien ne semble fonctionner. Peut-être que le problème est dans la show
méthode, mais je ne sais pas.
- Vous l'image n'est pas tourné, il est retourné verticalement.
OriginalL'auteur blueSurfer | 2012-07-31
Vous devez vous connecter pour publier un commentaire.
Votre image est pivotée en raison de l'origine du problème.
Si vous utilisez cet extrait, l'image ne sera pas tourné à l'envers.
Vous pouvez aussi tout simplement utiliser
im.show()
pour afficher l'image.Maintenant, revenons à la question initiale. Je pense que le problème vient du fait que pylab ne peut pas gérer les deux images. Vous avez certainement envie d'utiliser une image en niveaux de gris, et donc faire ce
OriginalL'auteur Balthazar Rouberol
Le problème est dans la façon de convertir l'image dans un tableau numpy. Si vous regardez ce que les sorties des fonctions sont cela devient clair
Qui ne peut pas être de droite.
pl.imshow
prend un tableau defloats
uint8
ouPIL
image, pas un tableau de booléens. Si vous avez besoin de faire la conversion dans un tableau de manière plus explicite, en faisant attention àLa finale
pl.imshow
nécessite de définir une palette de couleurs. Le'bone'
palette de couleurs, en noir et blanc. Je suppose que le passage d'unPIL
image dans les fonctions définit la palette de couleurs automatiquement.OriginalL'auteur Matti Lyra