Comment charger des pixels de plusieurs images dans un répertoire d'un tableau numpy. J'ai chargé une seule image dans un tableau numpy. Mais ne peut pas comprendre comment charger plusieurs images à partir d'un répertoire. Voici ce que j'ai fait jusqu'à présent
image = Image.open('bn4.bmp')
nparray=np.array(image)
Cela charge un 32 * 32 matrices. Je veux charger 100 des images dans un tableau numpy. Je veux faire 100 * 32 * 32 tableau numpy taille. Comment puis je faire ça ? Je sais que la structure ressemblerait à quelque chose comme ça
for filename in listdir("BengaliBMPConvert"):
if filename.endswith(".bmp"):
-----------------
else:
continue
Mais ne peut pas savoir comment charger les images dans numpy array
Pour obtenir la liste des fichiers BMP du répertoire BengaliBMPConvert
, utilisez:
import glob
filelist = glob.glob('BengaliBMPConvert/*.bmp')
Par contre, si vous connaissez déjà les noms de fichiers, il suffit de les placer dans un ordre:
filelist = 'file1.bmp', 'file2.bmp', 'file3.bmp'
Pour combiner toutes les images dans un tableau:
x = np.array([np.array(Image.open(fname)) for fname in filelist])
Pour enregistrer un tableau numpy dans un fichier à l’aide de pickle:
import pickle
pickle.dump( x, filehandle, protocol=2 )
où x
est le tableau numpy à sauvegarder, filehandle
est le descripteur du fichier pickle, tel que open('filename.p', 'wb')
, et protocol=2
indique à pickle d'utiliser son format actuel plutôt qu'un format ancien obsolète.
Vous pouvez également utiliser des méthodes fournies par numpy (astuce: tegan ). Pour vider le tableau x
dans le fichier file.npy
, utilisez:
x.dump('file.npy')
Pour charger le tableau x
dans le fichier:
x = np.load('file.npy')
Pour plus d'informations, voir les numpy docs pour dump et load .
Utilisez la fonction imread () de OpenCV avec os.listdir () , comme
import numpy as np
import cv2
import os
instances = []
# Load in the images
for filepath in os.listdir('images/'):
instances.append(cv2.imread('images/{0}'.format(filepath),0))
print(type(instances[0]))
classe 'numpy.ndarray'
Cela vous renvoie une liste (== instances
) dans laquelle toutes les valeurs d'échelle de gris des images sont stockées. Pour les images couleur, définissez simplement .format(filepath),1
.