2017-03-03 7 views
0

Ich lade gerade viele Bilder unterschiedlicher Größe in numpy, aber scheinen einige Probleme bezüglich der Form der Matrizen zu haben. Sie sind alle gleich, obwohl die Bilder unterschiedlich sind.Warum werden Bilder unterschiedlicher Größe in gleicher Größe in derselben Größe geladen?

Beispiel:

long rectangular image

square image

Beide werden mit dieser Funktion geladen.

def load_image(infilename) : 
    img = Image.open(infilename) 
    img.load() 
    data = np.asarray(img, dtype="int32") 
    return data 

aber beide haben data.shape ist (441,816,3) 441 macht Sinn, da alle Bilder die gleiche Anzahl von Zeilen und 3, da es RGB, aber 816 macht keinen Sinn? .. sie haben unterschiedliche Anzahl von Spalten? ... Warum wird es geladen, als ob alle dieselbe Anzahl von Spalten hätten?

+2

Das einzige, was ich denken kann, ist, dass Sie die falsche Sache für 'infilename' vorbei sind und es ändert sich nicht von Anruf zu Anruf. Versuchen Sie, vorübergehend einen 'img.show()' in den Code einzufügen, um zu sehen, was geladen wurde. –

Antwort

0

Der Fehler ist nicht in dem Code, den Sie anzeigen. Ich habe versucht, sich mit Ihren Bildern und dem folgenden Programm:

from PIL import Image 
import numpy as np 

def load_image(infilename): 
    img = Image.open(infilename) 
    img.load() 
    data = np.asarray(img, dtype="int32") 
    return data 

one = load_image("one.png") 
two = load_image("two.png") 

print "One:", one.shape 
print "Two:", two.shape 

Der Ausgang war

One: (441, 1302, 3) 
Two: (441, 543, 3) 
+0

Sie sind absolut richtig .. Nichts ist falsch mit dem Code. Es war genau so, wie ich es benutzt habe! – user7654132

Verwandte Themen