用matplotlib显示所有图像

时间:2018-11-14 12:12:31

标签: python numpy matplotlib

我正在使用numpy和matplotlib读取文件夹中的所有图像以进行图像处理技术。虽然,我已经完成了从文件夹中读取图像数据集并使用numpy array处理它的部分工作。但是,我面临的问题是使用matplotlib.imshow函数显示所有图像。每次我想使用imshow功能显示所有图像时,不幸的是,它只给我第一张图像。 我的代码如下:

import os
import numpy as np
import matplotlib.pyplot as mpplot
import matplotlib.image as mpimg

images = []
path = "../path/to/folder"
for root, _, files in os.walk(path):
    current_directory_path = os.path.abspath(root)
    for f in files:
        name, ext = os.path.splitext(f)
if ext == ".jpg":
   current_image_path = os.path.join(current_directory_path,f)
   current_image = mpimg.imread(current_image_path)
   images.append(current_image) 

for img in images:
    print len(img.shape)

i = 0

for i in range(len(img.shape)):
    mpplot.imshow(img)
    mpplot.show()

如果有人可以帮助我,我将非常感激。

P.S。我对python,numpy以及stackoverflow都很陌生。因此,请不要介意问题不清楚或不直接。

谢谢

2 个答案:

答案 0 :(得分:1)

关于一次只显示一个情节:请熟悉matplotlib subplots

另外,您没有遍历图像的问题是什么?您正在致电img x次。

尝试如下遍历图像:

for img in images:
    mpplot.imshow(img)
    mpplot.show()

答案 1 :(得分:0)

我认为您需要在每个mpplot.figure()之前添加mpplot.show(),这将为每个图像打开一个新窗口。