我正在使用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都很陌生。因此,请不要介意问题不清楚或不直接。
谢谢
答案 0 :(得分:1)
关于一次只显示一个情节:请熟悉matplotlib subplots。
另外,您没有遍历图像的问题是什么?您正在致电img
x次。
尝试如下遍历图像:
for img in images:
mpplot.imshow(img)
mpplot.show()
答案 1 :(得分:0)
我认为您需要在每个mpplot.figure()
之前添加mpplot.show()
,这将为每个图像打开一个新窗口。