istaotaola 2022-04-11 17:34 采纳率: 0%
浏览 435

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

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

1条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-04-11 17:48
    关注

    加入读文件夹函数,修改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)
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月11日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd