How do I use the matlib function plt.imshow(image) to display multiple images?
For example my code is as follows:
for file in images: process(file) def process(filename): image = mpimg.imread(filename) <something gets done here> plt.imshow(image)
My results show that only the last processed image is shown effectively overwriting the other images
The easiest way to display multiple images in one figure is use figure(), add_subplot(), and imshow() methods of Matplotlib. The approach which is used to follow is first initiating fig object by calling fig=plt. figure() and then add an axes object to the fig by calling add_subplot() method.
imshow always displays an image in the current figure. If you display two images in succession, the second image replaces the first image. To view multiple figures with imshow , use the figure command to explicitly create a new empty figure before calling imshow for the next image.
You can set up a framework to show multiple images using the following:
import matplotlib.pyplot as plt import matplotlib.image as mpimg def process(filename: str=None) -> None: """ View multiple images stored in files, stacking vertically Arguments: filename: str - path to filename containing image """ image = mpimg.imread(filename) # <something gets done here> plt.figure() plt.imshow(image) for file in images: process(file)
This will stack the images vertically
To display the multiple images use subplot()
plt.figure() #subplot(r,c) provide the no. of rows and columns f, axarr = plt.subplots(4,1) # use the created array to output your multiple images. In this case I have stacked 4 images vertically axarr[0].imshow(v_slice[0]) axarr[1].imshow(v_slice[1]) axarr[2].imshow(v_slice[2]) axarr[3].imshow(v_slice[3])
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