我正在为我的项目学习图像处理,我想从一个文件夹中打开多个图像,但是问题是图像文件已加载,但是当我尝试通过matplot lib显示它时,仅显示一个图像。代码为< / p>
img_dir=r"D:\UCP\Machine Learning A-Z\facialExp\images"
valid_image_extensions = [".jpg", ".jpeg", ".png", ".tif", ".tiff"]
#specify your vald extensions here
valid_image_extensions = [item.lower() for item in
valid_image_extensions]
image_path_list=[]
for file in os.listdir(img_dir):
extension = os.path.splitext(file)[1]
if extension.lower() not in valid_image_extensions:
continue
image_path_list.append(os.path.join(img_dir, file))
for image_file in image_path_list:
image=cv2.imread(image_file)
if image is not None:
plt.imshow(image, cmap='gray')
elif image is None:
print ("Error loading: " + image_file)
#end this loop iteration and move on to next image
continue
在第一个循环中,所有图像的目录都保存在image_path_list中,但是当我要在第二个循环中绘制时,仅绘制一个。 请暗示我想念或做错什么了。.
答案 0 :(得分:0)
您正在多次加载image
变量,因为您处于for
循环中。因此,您基本上是将一个图像加载到另一个图像之上,并且只会显示最后一个图像。
为使代码正常工作,您每次加载图像时都需要进行绘制。
您的代码可能只是错误地缩进,如果您将一个制表符的if语句缩进一个标签,它应该可以工作