在一个文件夹A里,有很多小文件夹,小文件夹里面还有小小文件夹,小小文件夹里面有图片。要读取文件夹A里面的所有某一类型的文件(比如jpg图片),可以使用Path包。
from pathlib import Path
path = './folder/A'
img_formats = ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.dng']
p = Path(path)
images=p.rglob('*.*')
images=[x for x in images if str(x)[-4:] in img_formats]
images=[str(x) for x in images] # 得到所有图片路径组成的列表
如果想使用yolov5对像以上存放的图片全部进行推断的话,原本程序的代码就无法满足要求,我们稍微修改下代码即可。
在yolov5项目的代码里面,对utils/datasets.py的 LoadImages类 进行修改:
class LoadImages: # for inference
def __init__(self, path, img_size=416):
# path = str(Path(path)) # os-agnostic
# files = []
# if os.path.isdir(path):
# files = sorted(glob.glob(os.path.join(path, '*.*')))
# eli