Saltar al contenido

Cómo mostrar la imagen PIL en un cuaderno ipython

Solución:

Puede utilizar IPython “s Module: display para cargar la imagen. Puede leer más en el Doc.

from IPython.display import Image 
pil_img = Image(filename="data/empire.jpg")
display(pil_img)

actualizado

Como requisito de OP es utilizar PIL, si desea mostrar una imagen en línea, puede usar matplotlib.pyplot.imshow con numpy.asarray así también:

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

Si solo necesita una vista previa en lugar de una en línea, puede usar show como esto:

pil_im = Image.open('data/empire.jpg', 'r')
pil_im.show()

Utilice la pantalla IPython para representar imágenes PIL en un cuaderno.

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)

Encontré que esto está funcionando

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

Después de esto, puedo hacer:

pil_im

Pero esta debe ser la última línea en la celda, sin print después de

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *