So laden Sie Pixel mehrerer Bilder in ein Verzeichnis in einem numpy-Array. Ich habe ein einzelnes Bild in ein numpy-Array geladen. Kann aber nicht herausfinden, wie man mehrere Bilder aus einem Verzeichnis lädt. Hier was ich bisher gemacht habe
image = Image.open('bn4.bmp')
nparray=np.array(image)
Dies lädt 32 * 32-Matrizen. Ich möchte 100 der Bilder in einem numpy-Array laden. Ich möchte ein Numpy-Array mit 100 * 32 * 32-Größen erstellen. Wie kann ich das machen ? Ich weiß, dass die Struktur so aussehen würde
for filename in listdir("BengaliBMPConvert"):
if filename.endswith(".bmp"):
-----------------
else:
continue
Kann aber nicht herausfinden, wie man die Bilder in numpy array lädt
Um eine Liste von BMP -Dateien aus dem Verzeichnis BengaliBMPConvert
zu erhalten, verwenden Sie:
import glob
filelist = glob.glob('BengaliBMPConvert/*.bmp')
Wenn Sie die Dateinamen jedoch bereits kennen, setzen Sie sie einfach in eine Reihenfolge:
filelist = 'file1.bmp', 'file2.bmp', 'file3.bmp'
So kombinieren Sie alle Bilder in einem Array:
x = np.array([np.array(Image.open(fname)) for fname in filelist])
So speichern Sie ein numpy-Array mit Pickle in einer Datei:
import pickle
pickle.dump( x, filehandle, protocol=2 )
dabei ist x
das zu speichernde numpy-Array, filehandle
das Handle für die Pickle-Datei, wie open('filename.p', 'wb')
, und protocol=2
weist pickle an, das aktuelle Format anstelle eines alten veralteten Formats zu verwenden.
Alternativ können numpy-Arrays mit den von numpy bereitgestellten Methoden (Hutspitze: tegan ) gebeizt werden. Um das Array x
in der Datei file.npy
zu sichern, verwenden Sie:
x.dump('file.npy')
So laden Sie das Array x
wieder aus der Datei:
x = np.load('file.npy')
Weitere Informationen finden Sie in den numpy-Dokumenten für dump und load .
Verwenden Sie die Funktion imread () von OpenCV zusammen mit os.listdir () , wie
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]))
klasse 'numpy.ndarray'
Daraufhin erhalten Sie eine Liste (== instances
), in der alle Graustufenwerte der Bilder gespeichert sind. Für Farbbilder setzen Sie einfach .format(filepath),1
.