J'ai besoin de lire des fichiers d'image (28 * 28) d'un dossier et de les empiler pour faire un tableau unique pour l'analyse.tableau 2d 3d pour faire en python
Je le code suivant:
for fname in os.listdir(dirname):
im = Image.open(os.path.join(dirname, fname))
imarray = np.array(im)
final = np.stack((final,imarray), axis = 0)
reçois l'erreur suivante: ValueError: tous les tableaux d'entrée doivent avoir la même forme
imarray est (28,28) et j'ai images 60K dans ce dossier, donc je veux faire un tableau de taille (60000,28,28)
Merci pour l'aide NK
Ajouter ces images à une liste (en boucle) et appeler vstack avec cette liste comme entrée (pas en boucle). C'est particulièrement important pour la performance. Ou si vous savez a priori combien d'imgs viennent incl. leur forme: construire une matrice 3d vide et les ajouter à ce tableau (meilleure approche). – sascha
J'ai essayé ceci pour fname dans os.listdir (dirname): im = Image.open (os.path.join (dirname, fname)) imarray = np.array (im) fin = np.empty ((60000 , 28,28)) fin = np.vstack ((fin, imarray)) et l'erreur « tous les tableaux d'entrée doivent avoir le même nombre de dimensions » – user6658936
I décrit deux approches différentes, ne pas les mélanger. Aussi: c'est impossible à lire. Eh bien ... la réponse de hpaulj couvre la première approche. Si sa solution ne fonctionne pas, votre hypothèse sur la forme (28,28) est probablement fausse. – sascha