2017-01-02 5 views
2

Ich habe ein Array mit der Form (1, 64, 224, 224). 64 Einzelkanalbilder der Größe 224 * 224. Wenn ich dies tue:zeigen mehrere Bild in Matplotlib aus numpy Array

plt.imshow(output_image[0,1,:,:], interpolation='nearest') 

Das Bild wird ordnungsgemäß angezeigt.

Aber wenn ich tun:

for i in range(64): 
    plt.imshow(output_image[0,i,:,:], interpolation='nearest') 

Ich sehe nur 1 Bild als Ergebnis, obwohl es 64 Bilder.

Wie kann ich eine Zeile mit 64 Bildern erhalten? Was mache ich falsch?

+0

Sie müssen die 'Ausdehnung' Kwarg verwenden, um sie von Überlappungen zu verschieben. – tacaswell

+0

@tacaswell Danke! Ich bin neu in Python, ein Beispiel dafür, wie ich das machen könnte, ist nett – Abhik

Antwort

2

Sie können einen neuen subplot für jedes Bild erstellen:

fig = plt.figure(figsize=(50, 50)) # width, height in inches 

for i in range(64): 
    sub = fig.add_subplot(64, 1, i + 1) 
    sub.imshow(output_image[0,i,:,:], interpolation='nearest') 

Dies wird alle 64 Bilder in einer Spalte setzen. Ändern zu:

sub = fig.add_subplot(8, 8, i + 1) 

für acht Spalten und acht Zeilen.

+0

Das funktioniert! aber die Bilder sind wirklich klein. Das Originalbild ist 224 * 224 ziemlich groß. Wie vergrößere ich die Bildgröße in der Handlung? – Abhik

+1

Sie können eine Zahlengröße angeben. Siehe meine aktualisierte Antwort. –