Ok, ich habe genau das gleiche Problem wie oben Apler Details. 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 Mac OSX Yosemite kann Python + PIL verwenden, um ein Bild anzuzeigen.
Ich musste PIL deinstallieren und stattdessen Pillow verwenden, damit die libjpeg-Bibliothek korrekt erkannt wird. Der Python-Code erstellt ein Bild - aber es wird nicht Anzeige das Bild.
Ich versuche, das Bild zu erzeugen mit:
f = BytesIO()
PIL.Image.fromarray(a).save(f, 'jpeg')
clear_output(wait = True)
display(Image(data=f.getvalue()))
Was ich sehe, wenn ich das kleine Programm in Python laufen ist:
<IPython.core.display.Image object>
In :
Dieses In: sieht eine IPython prompt sein.
Es scheint, dass der Code Beispiel, das ich durch arbeite speziell verwenden IPython Notebook die ist nicht dafür ausgelegt ist die gleiche wie IPython oder interaktive 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 unter: http://jupyter-notebook.readthedocs.io/en/latest/
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.
#
# --- Make+Show immediately a simulated Moire pattern as a .jpg file
#
# --- start Python and import this file with: import MakeShowMoire
# --- or use: execfile ("MakeShowMoire.py")
#
# --- import modules we need
from PIL import Image, ImageDraw
import numpy as np
import scipy.misc
#
# --- Ok, lets go..
width = 1020
height = 710
channels = 3
#
img = np.zeros((height, width, channels), dtype=np.uint8)
xx, yy = np.mgrid[:height, :width]
circle = (xx - 100) ** 2 + (yy - 100) ** 2
for y in range(img.shape[0]):
for x in range(img.shape[1]):
r, g, b = circle[y][x], circle[y][x], circle[y][x]
img[y] [x] [0] = r
img[y] [x] [1] = g
img[y] [x] [2] = b
#
# --- now, we have made the image, lets save it
scipy.misc.imsave("testimg.jpg", img)
#
# --- Since we have saved it, we should be able to display it
image = Image.open("testimg.jpg")
image.show()
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 läuft, geben Sie einfach:
>>> execfile ("MakeShowMoire.py")
Und das Beispiel sollte, genannt „tmpblahblah.BMP“ in einem Fenster auf Ihrem Mac, angezeigt werden, die aufgeschlagen wird, wenn Sie das Fenster schließen, aber Ihre testimg.jpg beibehalten wird , Na sicher. Ich verwendete "Import MakeShowMoire" an der Python-Eingabeaufforderung, 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. Ich hoffe, das ist nützlich.
Warum möchten Sie das in einer Schleife tun? – jrjc
Sind Sie sicher, dass es nicht geladen ist? Ich habe es ausprobiert und es funktioniert in beiden Fällen für mich, aber bei der Schleife wird das Bild nicht angezeigt (nicht der zuletzt ausgewertete Ausdruck); Ich muss es in einer Variablen speichern, und dann kann ich es anzeigen. – JPG
Weil ich mehrere Bilder aus einer Liste anzeigen möchte. Ich habe versucht, Bild drucken (Dateiname = 'xyz'), aber es zeigt es immer noch nicht – shantanuo