ipython 노트북에서 PIL 이미지를 표시하는 방법
이 내 코드입니다
from PIL import Image
pil_im = Image.open('data/empire.jpg')
이미지 조작을 한 다음 화면에 표시하고 싶습니다.
대체 노트북에서 PIL 이미지를 표시하는 데 문제가 있습니다.
나는 시도했다 :
print pil_im
그리고 그냥
pil_im
하지만 둘 다 나에게 줘 :
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=569x800 at 0x10ECA0710>
IPython Module: display
을 사용하여 이미지를로드 할 수 있습니다 . 문서 에서 더 많은 것을 읽을 수 있습니다 .
from IPython.display import Image
Image(filename='data/empire.jpg')
업데이트 됨
OP의 요구 사항은 사용 PIL
하는 것 인라인 이미지를 표시하려는 다음 matplotlib.pyplot.imshow
과 numpy.asarray
같이 사용할 수도 있습니다 .
from matplotlib.pyplot import imshow
import numpy as np
from PIL import Image
%matplotlib inline
pil_im = Image.open('data/empire.jpg', 'r')
imshow(np.asarray(pil_im))
인라인이 아닌 미리보기 만 필요한 경우 다음 show
과 같이 사용할 수 있습니다 .
pil_im = Image.open('data/empire.jpg', 'r')
pil_im.show()
IPython 앰 퍼런 스를 사용하여 노트북에서 PIL 이미지를 사용합니다.
from PIL import Image # to load images
from IPython.display import display # to display images
pil_im = Image.open('path/to/image.jpg')
display(pil_im)
나는 그것이한다는 것을 알았다
# source: http://nbviewer.ipython.org/gist/deeplook/5162445
from io import BytesIO
from IPython import display
from PIL import Image
def display_pil_image(im):
"""Displayhook function for PIL Images, rendered as PNG."""
b = BytesIO()
im.save(b, format='png')
data = b.getvalue()
ip_img = display.Image(data=data, format='png', embed=True)
return ip_img._repr_png_()
# register display func with PNG formatter:
png_formatter = get_ipython().display_formatter.formatters['image/png']
dpi = png_formatter.for_type(Image.Image, display_pil_image)
이 후에는 할 수 있습니다.
pil_im
하지만 이것은 셀의 마지막 줄이어야 print
합니다.
케이스 python3
from PIL import Image
from IPython.display import HTML
from io import BytesIO
from base64 import b64encode
pil_im = Image.open('data/empire.jpg')
b = BytesIO()
pil_im.save(b, format='png')
HTML("<img src='data:image/png;base64,{0}'/>".format(b64encode(b.getvalue()).decode('utf-8')))
pylab 확장을 사용하는 경우 이미지를 numpy 배열로 변환하고 matplotlib의 imshow를 사용할 수 있습니다.
%pylab # only if not started with the --pylab option
imshow(array(pil_im))
편집 : 주석에서 언급했듯이 pylab 모듈은 더 이상 사용되지 않으므로 대신 matplotlib 매직을 사용하고 함수를 명시 적으로 가져옵니다.
%matplotlib
from matplotlib.pyplot import imshow
imshow(array(pil_im))
다른 답변과 내 시도를 바탕으로 가장 좋은 경험은 먼저 설치, 베개 및 scipy 후 jupyter 노트북에서 다음 시작 코드를 사용하는 것입니다.
%matplotlib inline
from matplotlib.pyplot import imshow
from scipy.misc import imread
imshow(imread('image.jpg', 1))
패키지 PIL의 Image 클래스를 사용하여 이미지를 열고 plt.imshow로 직접 표시 할 수 있습니다.
from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
img = Image.open(<path_to_image>)
plt.imshow(img)
표준 numpy, matplotlib 및 PIL을 사용하는 더 깨끗한 Python3 버전입니다. URL에서 열기에 대한 답변을 병합합니다.
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
pil_im = Image.open('image.jpg')
## 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()
참고 URL : https://stackoverflow.com/questions/26649716/how-to-show-pil-image-in-ipython-notebook
'ProgramingTip' 카테고리의 다른 글
Skype 프로필에 대한 응용 프로그램 링크 만들기 (0) | 2020.10.18 |
---|---|
DataGridView 자동 맞춤 및 채우기 (0) | 2020.10.18 |
"마지막을 사용하고 있습니다"(또는 "연속 된 요소 쌍 사이")에 대한 관용구 (0) | 2020.10.18 |
WebStorm“Let 정의는 현재 JavaScript 버전에서 지원되지 않습니다.” (0) | 2020.10.18 |
R은 할당 연산자 인`->`를 정확히 어떻게 구문 분석 할 수 있습니까? (0) | 2020.10.17 |