2015-01-30 4 views
8

while 루프의 일부인 경우 이미지가로드되지 않습니다. 예 : 예상대로 다음 작품 :이미지가 ipython에 표시되지 않음

from IPython.display import Image 
Image(filename='someimage.jpg') 

그러나이 작동하지 않습니다

while True: 
    Image(filename='someimage.jpg') 
    break 

업데이트 : 목록에서 여러 이미지를 표시하려면 어떻게

?

+0

왜 이것을 반복하고 싶습니까? – jrjc

+0

로드되지 않았습니까? 시도해 보았지만 두 경우 모두 작동하지만 루프를 사용하면 이미지가 표시되지 않습니다 (마지막으로 평가 된 표현식이 아님). 나는 이것을 변수에 저장해야만하고 그것을 표시 할 수 있습니다. – JPG

+0

목록에서 여러 이미지를 표시하고 싶습니다. Image (파일 이름 = 'xyz')를 인쇄 해 보았지만 여전히 표시되지 않습니다. – shantanuo

답변

11

이 잘 여기서 일하는 : 별도의 명령으로 입력 할 때

from IPython.display import display, Image 

path1 = "/some/path/to/image1.png" 
path2 = "/some/path/to/image2.png" 

for path in path1, path2: 
    img = Image(path) 
    display(img) 
+11

나에게서 아무것도 표시하지 않고 그냥 반환합니다 : >>> display (image) In : – Alper

+0

@alper, 나에게는 여전히 ipython/jupyter의 최신 버전에서 작동합니다. 왜 그것이 당신을 위해 작동하지 않습니다 말해 하드. – cel

+0

jupyter에서 실행해야합니까? 그 문서는 일종의 혼란입니다. 파이썬으로 이것을 실행하고 그 결과를 볼 수는 없습니까? – Alper

1

IPython 노트북에서 작업, 인터프리터가 응답을 제공 할 것입니다.

그래서 예를 들면

:

>>>>a = 5 
>>>>a 
5 

을하지만 우리는 함수 나 루프에서 같은 일을 수행하는 경우, 우리는 응답을하지 않을 것입니다. 당신은 루프/함수 내에서 이미지를 표시하려면

그래서, 당신은 그래서 이미지 기능은 이미지를 반환 디스플레이 기능 (IPython.display.display)

from IPython.display import display, Image 

for image_path in images: # images is a list of paths 
    display(Image(image_path)) 

을 사용해야합니다. 통역사가 표시되면 표시되지만 그렇지 않은 경우 표시되지 않습니다. 표시되도록하려면 표시 기능을 사용합니다.

이것은 print 명령과 유사합니다. 인터프리터에서는 프로그램을 실행하는 동안 print 명령을 사용하여 변수를 볼 필요가 없습니다.

3

좋아, 나는 위와 같은 세부 사항과 똑같은 문제가있다. IPython이 이미지를 만드는 데 사용되는 상세한 예제를 통해 설명하겠다. 몇 번 시도해 본 결과 파일에서 .jpg 이미지를 성공적으로 표시했으며 으로 Mac OSX를 확인했습니다. Yosemite는 Python + PIL을 사용하여 이미지를 표시 할 수 있습니다.

libjpeg 라이브러리를 올바르게 인식하려면 PIL을 제거하고 대신 베개를 사용해야했습니다. 파이썬 코드 은 이미지를 생성하지만 이미지는이 아닙니다.

내가 가진 이미지를 만들려고 : 내가 파이썬에서 작은 프로그램을 실행할 때 내가 볼 무엇

f = BytesIO() 
PIL.Image.fromarray(a).save(f, 'jpeg') 
clear_output(wait = True) 
display(Image(data=f.getvalue())) 

은 다음과 같습니다

<IPython.core.display.Image object> 
In : 

에서이 일 : IPython 프롬프트 것으로 보인다.

내가 통해 일하고 코드 예제 특별히 IPython 노트북 하지 IPython, 또는 대화 형 파이썬과 동일을 사용하도록 설계되어 나타납니다.

Google TensorFlow 튜토리얼의 코드를 사용하려면 "IPython 노트북 서버"를 구성하고 "Jupyter"라는 프로그램을 실행해야합니다.Jupyter 자료에 대한 문서는 다음 위치에 있습니다. http://jupyter-notebook.readthedocs.io/en/latest/

점 apler가 좋습니다. 우리는 단지 일반 Python을 사용하여 .jpg 파일을 만들고 OSX를 실행하는 Mac에 표시 할 수 있어야합니다. 나는 이것을 수행하는 방법을 보여주기 위해 몇 가지 코드를 뽑았다. .jpg 이미지를 만들고 파일에 쓰고 PIL의 베개 버전을 사용하여 이미지를 표시합니다. (참고 : 필을 사용하여 원래 PIL을 제거한 다음 pip를 사용하여 필로우를 설치하고 Ethan.Tira-Thompson.com/Mac_OS_X_Ports.html 사이트에서 .dmg 파일로 "libjpeg"라이브러리를 선택했습니다. 또한 numpy 및 scipy.misc 모듈이 필요합니다.

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

이 파일을 MakeShowMoire.py로 저장하십시오. 이를 실행하려면 터미널 세션을 시작하고 Python을 실행하십시오. Darwin에서 Python 2.7.10 [GCC 4.2.1 호환 Apple LLVM 6.0 (clang 600.0.39)]을 사용하고 있으며 Mac OSX는 10.10.5 Yosemite입니다.

>>> execfile ("MakeShowMoire.py") 

을 그리고 예를 들어 당신이 창을 닫을 때 투구 할 것 "tmpblahblah.BMP"라는 창에, Mac에 표시되어야하지만 testimg.jpg이 유지됩니다 : 파이썬을 실행하면 바로 입력 , 당연하지. 파이썬 프롬프트에서 "MakeShowMoire 가져 오기"를 사용하여 파일을 실행했지만 네임 스페이스가 대화식 Python 세션에 매핑되지 않았습니다. execfile 함수를 사용하면 image.show()를 사용하여 파일 내용을 다시 표시 할 수 있습니다. 희망이 유용합니다.

+0

나는 원래의 tensorflow 예제로 다음을 수행했다. '#display (Image (data = f.getvalue()))' 'scipy.misc.imsave ("testimg.jpg", a)' 'image = PIL.Image.open ("testimg.jpg") ' 'image.show()' – Emile

1

내가 선택한 답변을 시도했지만 태양 아래에서 다른 모든 것들을 시도했지만, 내가 시도한 것에 관계없이 마지막 사진 만 표시합니다. 마침내 matplotlib로 작업 할 수있게되었습니다.

Import Image from IPython

import glob 
import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 

def display_photo(path): 
    print("File: {}".format(path)) 
    img = mpimg.imread(path) 
    imgplot = plt.imshow(img) 
    plt.show() 

for path in glob.iglob('my_photos/*'): 
    display_photo(path) 
0

Pass url to download Image

참고 : 다른 창에서 이미지 표시 - 이미지 뷰어. QtConsole을 사용하는 경우 디스플레이를 인라인으로 설정할 수 있습니다. %matplotlib inline

희망이 있습니다.

+0

데이터는 콘솔에 보관되지 않으므로 콘솔에 embed를 true로 설정하여 데이터를 유지하라는 메시지가 표시되지 않으면 아무 것도 표시되지 않습니다. 그것은 건물을 짓거나 이미지를 보여주는 데 도움이됩니다. –

+2

** ** 사진으로 코드를 게시해서는 안됩니다 **. 그건 절대 절대 스택 오버플로 가자. 그것을 제거하십시오,이 게시물은 약간의 편집이 필요합니다. 더 많은 정보를 포함 할 필요가 있다고 생각되면 주석 부분에 포함시키지 말고 원래 답변에 추가하십시오. –

관련 문제