Display an image with Python

I tried to use IPython.display with the following code:

from IPython.display import display, Image display(Image(filename='MyImage.png')) 

I also tried to use matplotlib with the following code:

import matplotlib.pyplot as plt import matplotlib.image as mpimg plt.imshow(mpimg.imread('MyImage.png')) 

In both cases, nothing is displayed, not even an error message.

11 Answers

If you are using matplotlib and want to show the image in your interactive notebook, try the following:

%pylab inline import matplotlib.pyplot as plt import matplotlib.image as mpimg img = mpimg.imread('your_image.png') imgplot = plt.imshow(img) plt.show() 
8

If you use matplotlib, you need to show the image using plt.show() unless you are not in interactive mode. E.g.:

plt.figure() plt.imshow(sample_image) plt.show() # display it 
2

In a much simpler way, you can do the same using

from PIL import Image image = Image.open('image.jpg') image.show() 
6

Using opencv-python is faster for more operation on image:

import cv2 import matplotlib.pyplot as plt im = cv2.imread('image.jpg') im_resized = cv2.resize(im, (224, 224), interpolation=cv2.INTER_LINEAR) plt.imshow(cv2.cvtColor(im_resized, cv2.COLOR_BGR2RGB)) plt.show() 

Your first suggestion works for me

from IPython.display import display, Image display(Image(filename='path/to/image.jpg')) 
4

It's simple Use following pseudo code

from pylab import imread,subplot,imshow,show import matplotlib.pyplot as plt image = imread('...') // choose image location plt.imshow(image) 

plt.show() // this will show you the image on console.

Using Jupyter Notebook, the code can be as simple as the following.

%matplotlib inline from IPython.display import Image Image('your_image.png') 

Sometimes you might would like to display a series of images in a for loop, in which case you might would like to combine display and Image to make it work.

%matplotlib inline from IPython.display import display, Image for your_image in your_images: display(Image('your_image')) 

Your code:

import matplotlib.pyplot as plt import matplotlib.image as mpimg 

What it should be:

plt.imshow(mpimg.imread('MyImage.png')) File_name = mpimg.imread('FilePath') plt.imshow(FileName) plt.show() 

you're missing a plt.show() unless you're in Jupyter notebook, other IDE's do not automatically display plots so you have to use plt.show() each time you want to display a plot or made a change to an existing plot in follow up code.

import IPython.display as display from PIL import Image image_path = 'my_image.jpg' display.display(Image.open(image_path)) 

Solution for Jupyter notebook PIL image visualization with arbitrary number of images:

def show(*imgs, **kwargs): '''Show in Jupyter notebook one or sequence of PIL images in a row. figsize - optional parameter, controlling size of the image. Examples: show(img) show(img1,img2,img3) show(img1,img2,figsize=[8,8]) ''' if 'figsize' not in kwargs: figsize = [9,9] else: figsize = kwargs['figsize'] fig, ax = plt.subplots(1,len(imgs),figsize=figsize) if len(imgs)==1: ax=[ax] for num,img in enumerate(imgs): ax[num].imshow(img) ax[num].axis('off') tight_layout() 

To display images in python, you can use a tool that I made.

  1. Install python3:

    • apt install python3
  2. Clone the repo:

    • git clone
  3. Install python required libs:

    • cd print-image-in-terminal
    • pip3 install numpy
    • pip3 install pillow

Usage: python3 print_image.py [path to image]

Examples: python3 print_image.py sinchan.jpg

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like