Wie teilt man ein Bild in einzelne Pixel auf?
Wie kann ich ein digitales Bild - keine Ahnung, welches Format; JPG, PNG oder so - vom Computer in einzelne Pixel aufteilen lassen, so dass ich (der Einfachheit halber gehe ich einfach einmal von einem Schwarzweiß-Bild aus) eine einfache Liste Einsen für Schwarz und Nullen für Weiß rausbekomme?
Es geht um viele Bilder, ich kann es also nicht per Hand machen, auch wenn es pro Bild nicht sehr viele Pixel sind.
(Für diejenigen, denen MNIST was sagt: Es geht darum. Wenn ihr eine Methode kennt, die nicht allgemeingültig ist, für MNIST aber funktioniert, habe ich nichts dagegen...)
2 Antworten
PIL (bzw. Pillow) lässt dich übliche Formate lesen, und du kannst die natürlich pixelweise anschauen.
Aber das MNIST-Zeug gibt's doch schon in allen erdenklichen Formaten und wahrscheinlich als fixfertiges Dataset in PyTorch oder so?
EDIT: in der Tat:
Nimm einfach irgendeinen Hexadezimaleditor. Der erlaubt den Zugang zu jedem einzelnen Pixel mitsamt seiner binären Farbcodierung. Wenn Du wirklich für pixel(zeile 205, spalte 183) den Rot-Grün-Blau-Wert auslesen möchtest empfehle ich das Bildformat BMP. Andere Formate wie JPEG, PNG enthalten bereits komprimierte Daten aus denen eine bitmap erst errechnet werden müsste. BMP ist unkomprimiert. Aber vorsicht: Auch BMP Dateien fangen mit einem Header an, den Du sorgfältig abspalten müsstest.