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>
2021/11/17 업데이트
PIL/필로우를 사용할 때 주피터 노트북은 이제display
추가적인 번거로움 없이 이미지를 직접 보여주는 내장형 제품입니다.
display(pil_im)
주피터는 셀의 마지막 줄(원래 게시물 이후 변경됨)일 경우에도 이미지를 표시합니다.이것을 지적해 준 @Dean과 @Prabhat의 답변에 감사드립니다.
기타 방법
파일에서
IPython's를 사용할 수 있습니다.display
모듈을 사용하여 이미지를 로드합니다.당신은 그 문서를 더 읽을 수 있습니다.
from IPython.display import Image
pil_img = Image(filename='data/empire.jpg')
display(pil_img)
PIL에서.이미지 개체
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
그 후에
베개를 사용하는 주피터에서 훨씬 더 간단합니다.
from PIL import Image
image0=Image.open('image.png')
image0
case 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')))
노트북의 이미지를 간단히 시각화하려면 디스플레이()를 사용할 수 있습니다.
%matplotlib inline
from PIL import Image
im = Image.open(im_path)
display(im)
패키지 PIL의 Image 클래스를 사용하여 이미지를 열고 직접 plt.imshow로 표시할 수 있습니다.
# First import libraries.
from PIL import Image
import matplotlib.pyplot as plt
# The folliwing line is useful in Jupyter notebook
%matplotlib inline
# Open your file image using the path
img = Image.open(<path_to_image>)
# Since plt knows how to handle instance of the Image class, just input your loaded image to imshow method
plt.imshow(img)
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))
다른 답변과 시도에 따르면, 가장 좋은 경험은 먼저 설치, 베개 및 스크리닝을 한 다음 주피터 노트북에 다음 시작 코드를 사용하는 것입니다.
%matplotlib inline
from matplotlib.pyplot import imshow
from scipy.misc import imread
imshow(imread('image.jpg', 1))
표준 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()
그냥 사용하기
from IPython.display import Image
Image('image.png')
다음 설치는 no image show img.show()로 하는 것이 좋습니다(PIL Import Image에서).
sudo apt-get 설치 이미지 매직
언급URL : https://stackoverflow.com/questions/26649716/how-to-show-pil-image-in-ipython-notebook
'programing' 카테고리의 다른 글
SSIS Excel 연결 관리자가 소스에 연결하지 못했습니다. (0) | 2023.07.29 |
---|---|
C/C++에 대한 마크다운 구현 (0) | 2023.07.29 |
MariaDB 도커 컨테이너에 호스트의 암호가 필요하지 않고 컨테이너 내부의 암호가 필요한 이유는 무엇입니까? (0) | 2023.07.09 |
데이터베이스를 복사하는 가장 좋은 방법(SQL Server 2008) (0) | 2023.07.09 |
ASP.NET 웹 가든 - 얼마나 많은 작업자 프로세스가 필요합니까? (0) | 2023.07.09 |