Web*_*ode 82 python ipython python-imaging-library ipython-notebook
这是我的代码
from PIL import Image
pil_im = Image.open('data/empire.jpg')
Run Code Online (Sandbox Code Playgroud)
我想对它进行一些图像处理,然后在屏幕上显示它.
我在python笔记本中显示PIL图像有问题.
我试过了:
print pil_im
Run Code Online (Sandbox Code Playgroud)
只是
pil_im
Run Code Online (Sandbox Code Playgroud)
但两个人都给我:
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=569x800 at 0x10ECA0710>
Run Code Online (Sandbox Code Playgroud)
Anz*_*zel 126
您可以使用IPython Module: display来加载图像.您可以从Doc中阅读更多内容.
from IPython.display import Image
Image(filename='data/empire.jpg')
Run Code Online (Sandbox Code Playgroud)
作为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))
Run Code Online (Sandbox Code Playgroud)
如果您只需要预览而不是内联,则可以使用show如下:
pil_im = Image.open('data/empire.jpg', 'r')
pil_im.show()
Run Code Online (Sandbox Code Playgroud)
sat*_*hyz 31
使用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)
Run Code Online (Sandbox Code Playgroud)
Web*_*ode 19
我发现这很有效
# 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)
Run Code Online (Sandbox Code Playgroud)
在此之后,我可以这样做:
pil_im
Run Code Online (Sandbox Code Playgroud)
但这必须是单元格的最后一行,没有print它
Pra*_*hat 15
在 jupyter 中使用枕头要简单得多。
from PIL import Image
image0=Image.open('image.png')
image0
Run Code Online (Sandbox Code Playgroud)
小智 14
案例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')))
Run Code Online (Sandbox Code Playgroud)
您可以使用 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)
Run Code Online (Sandbox Code Playgroud)
小智 6
为了简单地在笔记本中可视化图像,您可以使用 display()
%matplotlib inline
from PIL import Image
im = Image.open(im_path)
display(im)
Run Code Online (Sandbox Code Playgroud)