Это понимание цикла создаст весь набор данных за один раз.
arr = [ { 'img_nm' : fl,
'img' : cv2.imread( fl ) } for fl in files ]
Таким образом, для длительной обработки потребуется много времени, чтобы сохранить весь результат в памяти за это время.Лучше было бы обрабатывать каждое изображение по одному с чем-то вроде:
for fl in glob.iglob( os.path.join(root,'*.jpg') ):
new_image_record = {
'img_nm' : fl,
'img' : cv2.imread( fl )
}
# save new record