Reputation: 5898
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.
Upvotes: 205
Views: 972678
Reputation: 5889
If you are using matplotlib and want to show the image in your interactive notebook, try the following:
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('your_image.png')
imgplot = plt.imshow(img)
plt.show()
Upvotes: 386
Reputation: 157
To display images in python, you can use a tool that I made.
Install python3:
Clone the repo:
Install python required libs:
Usage: python3 print_image.py [path to image]
Examples: python3 print_image.py sinchan.jpg
Upvotes: 0
Reputation: 6623
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()
Upvotes: 2
Reputation: 1752
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'))
Upvotes: 4
Reputation: 2586
In a much simpler way, you can do the same using
from PIL import Image
image = Image.open('image.jpg')
image.show()
Upvotes: 58
Reputation: 840
import IPython.display as display
from PIL import Image
image_path = 'my_image.jpg'
display.display(Image.open(image_path))
Upvotes: 2
Reputation: 59
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.
Upvotes: 4
Reputation: 11673
Your first suggestion works for me
from IPython.display import display, Image
display(Image(filename='path/to/image.jpg'))
Upvotes: 14
Reputation: 61
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.
Upvotes: 4
Reputation: 151
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()
Upvotes: 10
Reputation: 5486
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
Upvotes: 56