Laden eines rechteckigen Bilds vertauscht Dimensionen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ReneL
User
Beiträge: 2
Registriert: Montag 11. Februar 2013, 16:23

Hallo, ich möchte ein rechteckiges monochromes Bild (100*200 Pixel) einladen und die Pixelwerte in einem numpy Array für eine Berechnung benutzen.

Ich benutze die PIL und folgende (simple) Zeilen:
im= Image.open()

pixels = im.getdata()

data = numpy.reshape(pixels, im.size)

Wenn ich mir nun data ausgeben lasse, so scheint das Bild allerdings nicht richtig gelesen zu werden. Die eigentliche Mitte befindet sich nun an beiden Rändern ( alternierend eine Zeile rechts und links) und die Dimensionen sind vertauscht.

Bei quadratischen Bildern funktioniert das auslesen der RGB Werte tadellos. Wo ist das Problem?

Wäre für Hilfe total dankbar, da ich so langsam Verzweifle.

Beste Grüße

ReneL

PS: Benutze Python 2.7
BlackJack

@ReneL: Das laden vertauscht nicht die Dimensionen sondern Dein `reshape()`. Bilderdimensionen wie zum Beispiel bei PIL werden in X×Y angegeben. Bei Arrays werden die aber anders herum angegeben. Ein 2D-Array besteht in der ersten Dimension aus Zeilen und in der zweiten wird der Wert innerhalb der Zeile addressiert.

Du kannst übrigens ganz einfach ``numpy.array(image)`` direkt auf das `PIL.Image`-Exemplar anwenden.
ReneL
User
Beiträge: 2
Registriert: Montag 11. Februar 2013, 16:23

Das ist mir jetzt echt peinlich.

Vielen Dank für die schnelle Hilfe.
Antworten