Jupyter Notebookのファイルから画像を表示するにはどうすればよいですか?


190

Biopythonのモジュールで作成しているいくつかのゲノムチャートをインタラクティブに分析する方法として、IPythonノートブックを使用したいと思いGenomeDiagramます。matplotlibIPython Notebookでグラフをインラインで取得する方法についての広範なドキュメントがありますが、GenomeDiagramは、IPythonでのインライングラフではサポートされていないと思われるReportLabツールキットを使用しています。

しかし、これを回避する方法は、プロット/ゲノム図をファイルに書き込んでから、次のようなものと同じ結果になる画像をインラインで開くことだと考えていました。

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

しかし、私はこれを行う方法を理解することができません-またはそれが可能かどうかを知ることはできません。では、IPythonで画像を開いたり表示したりできるかどうかは誰かが知っていますか?

回答:


332

この投稿のおかげで、次のことができます。

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

公式ドキュメント


内部にアクセスせずにパブリックAPIを使用するほうがよいですfrom IPython.display import Image。0.13以降で機能するはずです。
tomyun

64
ループ内の場合、画像は表示されません
ミューオン

6
ほとんどの人はDrMcCleodの答えを望みます。
AturSams 2017年

3
これは、以下のスレッドで推奨されているように、Image(filename = 'test.png')を渡して表示する場合にのみ機能します。 from IPython.core.display import Image, display<b /> display(Image(filename='test.png'))
John Strong

1
ケースでは、画像も(あなたが実行したスライドプレゼンテーションモードで表示するjupyter nbconvert mynotebook.ipynb --to slides --post serve)、その後、画像のパスで始まる必要があります/ので、それは、Webルートからの絶対パスは、すなわちであること![alt text](/test.jpg "Some Title")
ccpizzaは

213

ループ内でこの方法で画像を表示する場合は、表示メソッドで画像コンストラクターをラップする必要があります。

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))

1
どうして?(それ以外の場合は機能しないと言わないでください。この 'display'の呼び出しがループで必要な理由を説明してください(1つの画像を表示するだけの場合は不要です)。
クリス2017年

10
IPython Notebooksはセルの最後の戻り値のみを表示するため、同じセルからの2つの出力がある場合は常に 'display'メソッドを使用する必要があります。詳細については、この質問を参照してください。
DrMcCleod 2017年

1
あなたは私のヒーローです-私はこれを2日間探していました。
ZaxR 2017年

1
これは素晴らしい。時間とともに画像が変化するアニメーション効果のように、次の画像を既存の画像にどのように置き換えますか?
blissweb

2
画像を並べて表示するにはどうすればよいでしょうか。たとえば、画像の4x4グループを表示します。
gmagno

31

注、今まで投稿されたソリューションはpngとjpgでのみ機能します!

さらにライブラリをインポートせずにさらに簡単にしたい場合、またはアニメーション化された、またはアニメーション化されていないGIFファイルをIpythonノートブックに表示したい場合。表示したい行をマークダウンに変換し、この素敵な短いハックを使用してください!

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

2
画像をJupyterノートブックと同じフォルダに配置するか、「test.gif」の代わりに「relative / path / test.gif」を使用します
Philipp Schwarz

23

これは.jpg画像をJupyterにインポートして表示します(Anaconda環境でPython 2.7でテスト済み)

from IPython.display import display
from PIL import Image


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

PILをインストールする必要があるかもしれません

アナコンダでは、これは

conda install pillow

8

このページの礼儀、私はこれが上記の提案がうまくいかなかったときにうまくいったことを発見しました:

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()))

4

マークダウンセクションのHTMLコードで使用できます:例:

 <img src="https://www.tensorflow.org/images/colab_logo_32px.png" />

2

標準のnumpy、matplotlib、およびPILを使用するよりクリーンなPython3バージョン。URLから開くための回答をマージしています。

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()

2

大量の画像を効率的に表示したい場合は、IPyPlotパッケージの使用をお勧めします

import ipyplot

ipyplot.plot_images(images_array, max_images=20, img_width=150)

ここに画像の説明を入力してください

そのパッケージには、インタラクティブなタブ(ラベル/クラスごとに個別のタブ)に画像を表示できる便利な関数がいくつかあります。これは、すべてのML分類タスクに非常に役立ちます。

ここに画像の説明を入力してください


0

GenomeDiagramJupyter(iPython)で使用する場合、画像を表示する最も簡単な方法は、GenomeDiagramをPNG画像に変換することです。これは、IPython.display.Imageオブジェクトを使用してラップして、ノートブックに表示することができます。

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"))

[ノートブックを参照]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.