it-swarm.com.de

Wie kann ich ein Bild aus einer Datei in Jupyter Notebook anzeigen?

Ich möchte ein IPython-Notebook verwenden, um interaktiv einige Genomdiagramme zu analysieren, die ich mit dem GenomeDiagram -Modul von Biopython erstellt habe. GenomeDiagram verwendet das ReportLab-Toolkit, das für die Inline-Darstellung in IPython nicht unterstützt wird. Es gibt eine umfassende Dokumentation zur Verwendung von matplotlib, um Grafiken in IPython-Notebooks inline abzurufen. 

Ich dachte jedoch, dass man das Plot/Genom-Diagramm in eine Datei schreiben und dann das Bild inline öffnen könnte, was dasselbe Ergebnis mit etwas wie diesem hätte:

Gd_diagram.write("test.png", "PNG")
display(file="test.png")

Ich kann jedoch nicht herausfinden, wie ich das mache - oder weiß, ob es möglich ist. Weiß jemand, ob Bilder in IPython geöffnet/angezeigt werden können?

128
zach

Mit freundlicher Genehmigung von diesem Beitrag können Sie Folgendes tun:

from IPython.display import Image
Image(filename='test.png') 

( offizielle Dokumente )

231
zach

Wenn Sie versuchen, ein Bild auf diese Weise in einer Schleife anzuzeigen, müssen Sie den Bildkonstruktor in eine Anzeigemethode einschließen.

from IPython.display import Image, display

listOfImageNames = ['/path/to/images/1.png',
                    '/path/to/images/2.png']

for imageName in listOfImageNames:
    display(Image(filename=imageName))
154
DrMcCleod

Beachten Sie, dass bisher veröffentlichte Lösungen nur für png und jpg funktionieren!

Wenn Sie es noch einfacher haben möchten, ohne weitere Bibliotheken zu importieren, oder Sie möchten eine animierte oder nicht animierte GIF-Datei in Ihrem Ipython Notebook anzeigen. Verwandeln Sie die Linie an der Stelle, an der Sie sie anzeigen möchten, und markieren Sie diesen schönen Kurzhack!

![alt text](test.gif "Title")
26
Philipp Schwarz

Dadurch wird ein .jpg-Bild in Jupyter importiert und angezeigt (getestet mit Python 2.7 in Anaconda-Umgebung).

from IPython.display import display
from PIL import Image


path="/path/to/image.jpg"
display(Image.open(path))

Möglicherweise müssen Sie PIL installieren

in Anaconda erfolgt dies durch Tippen

conda install pillow
5
Conor Cosnett

Mit freundlicher Genehmigung von this page habe ich festgestellt, dass dies funktioniert, wenn die oben genannten Vorschläge nicht zutreffen:

import PIL.Image
from cStringIO import StringIO
import IPython.display
import numpy as np
def showarray(a, fmt='png'):
    a = np.uint8(a)
    f = StringIO()
    PIL.Image.fromarray(a).save(f, fmt)
    IPython.display.display(IPython.display.Image(data=f.getvalue()))
5
Afflatus

Sie können PIL auch verwenden, um Bilddateien in Jupyter Notebook anzuzeigen: 

from PIL import Image
path = "cats/cat0.jpg"
display(Image.open(path))

Dies funktioniert auch in einer Schleife.

3
ezchx

Wenn Sie GenomeDiagram mit Jupyter (iPython) verwenden, können Sie Bilder am einfachsten anzeigen, indem Sie das GenomeDiagram in ein PNG-Bild konvertieren. Dies kann mit einem IPython.display.Image -Objekt umhüllt werden, damit es im Notizbuch angezeigt wird.

from Bio.Graphics import GenomeDiagram
from Bio.SeqFeature import SeqFeature, FeatureLocation
from IPython.display import display, Image
Gd_diagram = GenomeDiagram.Diagram("Test diagram")
Gd_track_for_features = Gd_diagram.new_track(1, name="Annotated Features")
Gd_feature_set = Gd_track_for_features.new_set()
Gd_feature_set.add_feature(SeqFeature(FeatureLocation(25, 75), strand=+1))
Gd_diagram.draw(format="linear", orientation="landscape", pagesize='A4',
                fragments=1, start=0, end=100)
Image(Gd_diagram.write_to_string("PNG"))

[siehe Notizbuch]

0
Quantum7

Eine saubere Python3-Version, die Standard-Numpy, Matplotlib und PIL verwendet. Die Antwort zum Öffnen von URL zusammenführen.

import matplotlib.pyplot as plt
from PIL import Image
import numpy as np

pil_im = Image.open('image.png') #Take jpg + png
## Uncomment to open from URL
#import requests
#r = requests.get('https://www.vegvesen.no/public/webkamera/kamera?id=131206')
#pil_im = Image.open(BytesIO(r.content))
im_array = np.asarray(pil_im)
plt.imshow(im_array)
plt.show()

Leichte Änderung meiner Antwort hier: So zeigen Sie das PIL-Bild in einem ipython-Notebook an

0
Punnerud