Bild wird nicht in ipython angezeigt

8

Das Bild wird nicht geladen, wenn es Teil einer while-Schleife ist. Für z.B. Folgendes funktioniert wie erwartet:

%Vor%

Aber das geht nicht:

%Vor%

Aktualisierung:

Wie zeige ich mehrere Bilder aus einer Liste an?

    
shantanuo 30.01.2015, 13:42
quelle

5 Antworten

11

Das funktioniert hier gut:

%Vor%     
cel 30.01.2015, 15:02
quelle
3

Ok, ich habe genau das selbe Problem wie oben. Ich gehe durch ein detailliertes Beispiel, wo IPython verwendet wird, um ein Bild zu erstellen. Nach mehreren Versuchen habe ich erfolgreich ein .jpg Bild aus einer Datei angezeigt, und bestätigt, dass Mac OSX Yosemite Python + PIL verwenden kann , um ein Bild anzuzeigen.

Ich musste PIL deinstallieren und stattdessen Pillow verwenden, damit die libjpeg-Bibliothek korrekt erkannt wird. Der Python-Code erzeugt ein Bild - aber das Bild wird nicht angezeigt.

Ich versuche, das Bild mit zu erstellen:

%Vor%

Was ich sehe, wenn ich das kleine Programm in Python starte, ist:

%Vor%

This In: Scheint eine IPython-Eingabeaufforderung zu sein.

Es scheint, dass das Codebeispiel, das ich gerade durchführe, speziell dafür ausgelegt ist, IPython Notebook zu verwenden, das nicht dasselbe ist wie IPython oder interaktives Python.

Um den obigen Code zu verwenden, der aus dem Google TensorFlow Tutorial stammt, muss man einen "IPython Notebook Server" konfigurieren und etwas namens "Jupyter" ausführen. Die Dokumentation für Jupyter Zeug ist: Ссылка

Der Punkt, den Apler macht, ist gut. Wir sollten einfach Python verwenden können, um eine JPG-Datei zu erstellen und sie auf einem Mac mit OSX anzuzeigen. Ich habe etwas Code gezogen, um zu zeigen, wie das geht. Es erstellt ein JPG-Bild, schreibt es in eine Datei und zeigt es dann mit der Kissenversion von PIL an. (Hinweis: Ich musste pip verwenden, um das Original-PIL zu deinstallieren, dann Pill installieren, Pillow, und ich habe die "libjpeg" -Bibliothek als .dmg-Datei von der Ethan.Tira-Thompson.com/Mac_OS_X_Ports.html-Seite abgeholt). Sie benötigen auch numpy und scipy.misc Module.

%Vor%

Speichern Sie diese Datei als MakeShowMoire.py. Starten Sie eine Terminalsitzung, und führen Sie Python aus, um das auszuführen. Ich benutze Python 2.7.10 [GCC 4.2.1 Kompatibel Apple LLVM 6.0 (clang 600.0.39)] auf Darwin, und Mac OSX ist 10.10.5 Yosemite. Wenn Python ausgeführt wird, geben Sie einfach Folgendes ein:

%Vor%

Und das Beispiel sollte auf Ihrem Mac in einem Fenster namens "tmpblahblah.BMP" angezeigt werden, das beim Schließen des Fensters angezeigt wird, aber Ihr testimg.jpg wird natürlich beibehalten. Ich habe "Import MakeShowMoire" an der Python-Eingabeaufforderung verwendet, um die Datei auszuführen, aber der Namespace wird nicht der interaktiven Python-Sitzung zugeordnet. Wenn Sie die Funktion execfile verwenden, können Sie den Dateiinhalt mit image.show () erneut anzeigen. Hoffe, das ist nützlich.

    
gemesyscanada 02.03.2017 22:53
quelle
1

Beim Arbeiten in IPython-Notizbüchern gibt der Interpreter eine Antwort, wenn er als separater Befehl eingegeben wird.

Also zum Beispiel:

%Vor%

Aber wenn wir dasselbe in einer Funktion oder Schleife machen würden, würden wir die Antwort nicht bekommen.

Wenn Sie also Bilder innerhalb einer Schleife / Funktion anzeigen möchten, müssen Sie die Anzeigefunktion (IPython.display.display)

verwenden %Vor%

Die Bildfunktion gibt also ein Bild zurück. Im Interpreter wird es angezeigt, ansonsten nicht. Um sicherzustellen, dass es angezeigt wird, verwenden wir die Anzeigefunktion.

Dies ist ähnlich dem Druckbefehl. Im Interpreter ist es nicht notwendig, den Befehl print zum Anzeigen von Variablen zu verwenden, während dies beim Ausführen eines Programms der Fall ist.

    
Samarth Hattangady 24.01.2017 06:16
quelle
1

Ich habe die gewählte Antwort versucht, und fast alles andere unter der Sonne, aber egal, was ich versuchte, es würde nur das letzte Foto anzeigen. Ich konnte endlich mit matplotlib arbeiten.

%Vor%     
Paul Williams 07.09.2017 07:09
quelle
0

Hinweis: Das Bild wird in einem anderen Fenster angezeigt - Bildbetrachter. Wenn Sie QtConsole verwenden, kann die Anzeige mit %matplotlib inline

auf Inline gesetzt werden

Hoffe, das hilft.

    
Omoifo Darlington 28.11.2017 13:12
quelle

Tags und Links