如何在Python+Keras中从指定文件夹随机选图后用load_img加载?
解决Python+Keras随机选图加载失败的问题
核心问题与修复
你遇到的报错基本是文件路径不完整导致的——load_img需要完整的文件路径,而你只传了随机选中的文件名,程序找不到对应文件。
正确实现代码
直接获取所有图片的完整路径,再随机选取加载:
import os import random from tensorflow.keras.utils import load_img # 替换成你的图片文件夹实际路径 img_dir = "/your/image/folder/path" # 收集所有图片的完整路径(过滤非图片文件) all_img_paths = [] for filename in os.listdir(img_dir): if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp')): full_path = os.path.join(img_dir, filename) all_img_paths.append(full_path) # 随机选一张加载 random_img = random.choice(all_img_paths) loaded_img = load_img(random_img) # 验证:打印图片信息 print(f"加载成功:{random_img},图片尺寸:{loaded_img.size}")
对你现有代码的修改建议
如果你的代码已经有文件名列表,只需补全路径拼接:
# 错误示例:仅传文件名 # load_img(random_filename) # 正确写法:拼接文件夹路径和文件名 load_img(os.path.join(img_dir, random_filename))
额外提示
- 路径里不要有中文或特殊字符,避免编码问题
- 用
os.path.join拼接路径,适配Windows/Linux不同的路径分隔符 - 图片数量极多时,用
os.scandir()遍历文件夹效率更高
内容的提问来源于stack exchange,提问作者Ahmad Sarairah
相关产品推荐
相关产品推荐

