Seite 1 von 1

Laden eines rechteckigen Bilds vertauscht Dimensionen

Verfasst: Montag 11. Februar 2013, 16:35
von ReneL
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

Re: Laden eines rechteckigen Bilds vertauscht Dimensionen

Verfasst: Montag 11. Februar 2013, 16:48
von 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.

Re: Laden eines rechteckigen Bilds vertauscht Dimensionen

Verfasst: Montag 11. Februar 2013, 17:06
von ReneL
Das ist mir jetzt echt peinlich.

Vielen Dank für die schnelle Hilfe.