programing

ipython 노트북에서 PIL 이미지를 표시하는 방법

coolbiz 2023. 7. 9. 22:04
반응형

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

반응형