If I have multiple images (loaded as NumPy arrays) how can I display the in one IPython Notebook cell?
I know that I can use plt.imshow(ima)
to display one image… but I want to show more than one at a time.
I have tried:
for ima in images: display(Image(ima))
But I just get a broken image link:
Short answer:
call plt.figure()
to create new figures if you want more than one in a cell:
for ima in images: plt.figure() plt.imshow(ima)
But to clarify the confusion with Image
:
IPython.display.Image
is for displaying Image files, not array data. If you want to display numpy arrays with Image, you have to convert them to a file-format first (easiest with PIL):
from io import BytesIO import PIL from IPython.display import display, Image def display_img_array(ima): im = PIL.Image.fromarray(ima) bio = BytesIO() im.save(bio, format='png') display(Image(bio.getvalue(), format='png')) for ima in images: display_img_array(ima)
A notebook illustrating both approaches.
This is easier and works:
from IPython.display import Image from IPython.display import display x = Image(filename='1.png') y = Image(filename='2.png') display(x, y)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With