Jupyter Notebook의 파일에서 이미지를 표시하려면 어떻게해야합니까?


190

Bioython 모듈로 만든 일부 게놈 차트를 대화식으로 분석하는 방법으로 IPython 노트북 을 사용하고 싶습니다 GenomeDiagram. matplotlibIPython 노트북에서 그래프를 인라인으로 가져 오는 방법에 대한 광범위한 문서가 있지만 GenomeDiagram은 IPython에서 인라인 그래프로 지원되지 않는 ReportLab 툴킷을 사용합니다.

그러나이 문제를 해결하는 방법은 플롯 / 게놈 다이어그램을 파일에 작성한 다음 이미지를 인라인으로 열어서 다음과 같은 결과를 얻을 수 있다고 생각했습니다.

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

그러나이 작업을 수행하는 방법을 알 수 없거나 가능한지 알 수 없습니다. IPython에서 이미지를 열거 나 표시 할 수 있는지 아는 사람이 있습니까?

답변:


335

씨의 이 게시물은 다음을 수행 할 수 있습니다 :

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

( 공식 문서 )


내부에 액세스하지 않고 공개 API를 사용하는 것이 좋습니다 from IPython.display import Image. 0.13부터 작동해야합니다.
tomyun

65
루프 안에 있으면 이미지가 표시되지 않습니다
muon

6
대부분의 사람들은 DrMcCleod의 답변을 원할 것입니다.
AturSams

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)에 표시하려면 이미지 경로가 /웹 루트와의 절대 경로가되도록 시작해야 합니다 (예![alt text](/test.jpg "Some Title")
ccpizza

215

루프 내에서 이런 식으로 이미지를 표시하려는 경우 이미지 생성자를 표시 메소드로 랩핑해야합니다.

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
왜? (그렇지 않으면 작동하지 않는다고 말하지 마십시오. 왜 '디스플레이'에 대한 호출이 루프에 필요한지 설명하지만 하나의 이미지를 표시하지 않는 경우에는 설명하지 마십시오).
Kris

10
IPython Notebook은 셀의 마지막 리턴 값 만 표시하므로 동일한 셀에서 두 개의 출력이있을 때마다 'display'메소드를 사용해야합니다. 자세한 내용은 이 질문 을 참조하십시오 .
DrMcCleod

1
당신은 나의 영웅입니다-나는 이것을 이틀 동안 찾고있었습니다.
ZaxR

1
대단하다. 시간이 지남에 따라 이미지가 변경 될 때 애니메이션 효과와 같이 다음 이미지를 기존 이미지로 바꾸려면 어떻게해야합니까?
blissweb

2
궁금합니다. 이미지를 어떻게 타일링 할 수 있습니까? 예를 들어 4x4 이미지 그룹을 표시합니다.
gmagno

31

지금까지 게시 된 솔루션은 png 및 jpg에서만 작동합니다.

추가 라이브러리를 가져 오지 않고 더 쉽게 원하거나 애니메이션 또는 애니메이션되지 않은 GIF 파일을 Ipython Notebook에 표시하려는 경우. 표시하려는 위치를 마크 다운으로 변환하고이 멋진 짧은 핵을 사용하십시오!

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

2
Jupyter 노트북과 동일한 폴더에 이미지를 넣거나 "test.gif"대신 "relative / path / test.gif"를 사용하십시오.
Philipp Schwarz

23

.jpgJupyter 에서 이미지를 가져 와서 표시합니다 (Anaconda 환경에서 Python 2.7로 테스트).

from IPython.display import display
from PIL import Image


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

PIL을 설치해야 할 수도 있습니다

Anaconda에서 이것은 입력하여 수행됩니다.

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.