yolov5车辆识别的数据集的雾化和去雾处理

问题遇到的现象和发生背景

毕业设计,牵扯到关于大雾天气下的车辆识别,我用的是YOLOv5算法,但是到处理数据集这里遇到了问题,不会对一个文件内的图像进行批量的雾化处理,效率很低,在网络上找到了一些雾化图像的代码,但是只能进行单张图像的雾化,想知道这个代码如何修改,能让这个代码可以批量处理文件夹内的图像(大概有两千多张)

问题相关代码,请勿粘贴截图

import cv2, math
import numpy as np

def demo():
img_path = 'data/images/bus.jpg'

img = cv2.imread(img_path)
img_f = img / 255.0
(row, col, chs) = img.shape

A = 0.5  # 亮度
beta = 0.08  # 雾的浓度
size = math.sqrt(max(row, col))  # 雾化尺寸
center = (row // 2, col // 2)  # 雾化中心
for j in range(row):
    for l in range(col):
        d = -0.04 * math.sqrt((j - center[0]) ** 2 + (l - center[1]) ** 2) + size
        td = math.exp(-beta * d)
        img_f[j][l][:] = img_f[j][l][:] * td + A * (1 - td)

cv2.imshow("src", img)
cv2.imshow("dst", img_f)
cv2.waitKey()

if name == 'main':
demo()
##网络上搜到的单张图像 去雾代码##作者:https://blog.csdn.net/u014070279/article/details/108130286

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

加入读文件夹函数,修改demo,有用望采纳


``` file_path 图像文件夹```
def demo(file_path, img_path):
  img = cv2.imread(img_path)
  img_f = img / 255.0
  (row, col, chs) = img.shape
  A = 0.5  # 亮度
  beta = 0.08  # 雾的浓度
  size = math.sqrt(max(row, col))  # 雾化尺寸
  center = (row // 2, col // 2)  # 雾化中心
  for j in range(row):
    for l in range(col):
        d = -0.04 * math.sqrt((j - center[0]) ** 2 + (l - center[1]) ** 2) + size
        td = math.exp(-beta * d)
        img_f[j][l][:] = img_f[j][l][:] * td + A * (1 - td)
  cv2.imwrite(file_path + img_path.replace('.','_frozen.'), img_f)
def read_images(file_path):
  image_list = os.listdir(file_path)
  for image in image_list:
    demo(file_path, image)


file_path = ''
read_images(file_path)