import os #um Verzeichnisse zu listen import skimage.io #um Bilder einzulesen # Pfad zu den Bilddateien digitsdirectory = 'C:/temp/knn_rk_trainingsdaten/' def getPixeListFromFilePath(filepath): img = skimage.io.imread(fname=filepath) w = img.shape[0] h = img.shape[1] pixellist = [] for y in range(h): for x in range(w): # color is ein Objekt mit verschiedenen Attributen, u.a. red, green, blue. # bei grau sind rot=gruen=blau, d.h., eine Farbe auslesen reicht. # siehe auch https://docs.oracle.com/javase/7/docs/api/java/awt/Color.html color = img[y][x] # umlegen auf das Intervall [-1,1] zwecks Normalisierung value = (color/255) * 2 - 1 # an liste anhaengen pixellist.append(value) return pixellist def getDigitFromFileName(filename): return int(filename.split('_', 3)[2]) # leere Liste fuer alle Trainingsdaten der Form [-0.93,0.331,....,0.99,3] trainingset = [] # durch alle files im Ziffernverzeichnis loopen for filename in [filename for filename in os.listdir(digitsdirectory) if filename.endswith("gif")]: # Ziffer auslesen currdigit = getDigitFromFileName(filename) # Pixelliste von Datei auslesen currpixellist = getPixeListFromFilePath(digitsdirectory + filename) # Der Pixelliste die Ziffer anhaengen currpixellist.append(currdigit) # Gesamte Liste dem trainingsset anhaengen. trainingset.append(currpixellist) # Das Trainingsset kann jetzt verwendet werden # print(trainingset)