Skip to content

Instantly share code, notes, and snippets.

@kylemcdonald
Created January 3, 2016 08:56
Show Gist options
  • Save kylemcdonald/2f1b9a255993bf9b2629 to your computer and use it in GitHub Desktop.
Save kylemcdonald/2f1b9a255993bf9b2629 to your computer and use it in GitHub Desktop.
Minimal code for rendering a numpy array as an image in a Jupyter notebook in memory. Borrowed from the Deep Dream notebook.
import PIL.Image
from cStringIO import StringIO
import IPython.display
import numpy as np
def showarray(a, fmt='png'):
a = np.uint8(a)
f = StringIO()
PIL.Image.fromarray(a).save(f, fmt)
IPython.display.display(IPython.display.Image(data=f.getvalue()))
@rueberger
Copy link

It interpolates by default. From the docs "The number of pixels used to render an image is set by the Axes size and the dpi of the figure. This can lead to aliasing artifacts when the image is resampled because the displayed image size will usually not match the size of X".

Just a lot of nonsense to wade through when you just want to see a faithful representation of an image array

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment