首页 > 其他分享 >生成数据集的平均值和标准差

生成数据集的平均值和标准差

时间:2023-09-15 22:34:46浏览次数:43  
标签:std 平均值 image 生成 channels 标准差 path sum mean

import torch
import os
import numpy as np
from PIL import Image


def cal_mean_std(path: str):
    channels_sum, channels_squared_sum, nums = 0, 0, 0
    path_list = os.listdir(path)
    for img_path in path_list:
        image_path = os.path.join(path, img_path)
        image = Image.open(image_path)
        if image.mode != 'RGB':
            image = image.convert('RGB')   # convert image to RGB if it is not
        image = torch.from_numpy(np.array(image)).permute([2, 0, 1]).float()
        channels_sum += torch.mean(image, dim=[1, 2])
        channels_squared_sum += torch.mean(image**2, dim=[1, 2])
        nums += 1
    mean = channels_sum / nums
    std = (channels_squared_sum / nums - mean**2)**0.5
    return mean, std


if __name__ == '__main__':
    path = os.path.abspath(r"C:\Users\GW\Desktop\xu\data_coco\train2017")  # 数据集路径
    mean, std = cal_mean_std(path=path)
    print(f'mean : {mean}, std : {std}')




标签:std,平均值,image,生成,channels,标准差,path,sum,mean
From: https://blog.51cto.com/u_16248600/7488034

相关文章

  • Vue源码学习(五):<templete>渲染第四步,生成虚拟dom并将其转换为真实dom
    好家伙, 前情提要:在上一篇我们已经成功将ast语法树转换为渲染函数 现在我们继续 1.项目目录代码已开源https://github.com/Fattiger4399/analytic-vue.git手动调试一遍,胜过我解释给你听一万遍新增文件:vnode/index.js  vnode/patch.js  lifecycle.js 2.虚......
  • knife4j——集成Swagger生成Api文档
      首先是依赖导入<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version></dependency>    然后是配置文件中的配置/***配置类,注册web层相关组件......
  • antdesign vue通用表单生成页面
    效果图效果图由于涉及企业敏感信息,信息进行了打码,还请多多包涵。。。点击左侧菜单树,右侧加载不同table,并且绑定列名不同(说明:前两列企业名称和城市名称固定不变)技术思路左侧菜单为标识,控制表单页面的布局和模块显示,字段显示隐藏,可根据下面2附图加深理解,由于信息敏感问题,暂时不提供......
  • 前端生成二维码,qrcode使用说明,canvas查看大图
    生成二维码用于vue项目通过字符串转换生成二维码的三方插件安装插件npminstall--saveqrcode引入使用importQRCodefrom"qrcode"页面<!--放置二维码的容器--><canvas:id="'qrCode_id'+stringxxxxx"class="qrCode_style"></canvas><!--可......
  • markdown使用vscode生成目录
    要想用vscode生成目录,按照如下步骤执行即可:需要先安装插件MarkdownAllinone在想要插入目录的地方快捷键Ctrl+Shift+P然后在弹出的框里面输入TOC3.选择命令createtableofcontents就完成了目录生成如果想要导出为Html页面的话输入Ctrl+Shift+P然后在弹出的......
  • C#使用NPOI读取模板生成EXCEL
     C#使用NPOI读取模板生成EXCELstringcurrentDirectory=System.AppDomain.CurrentDomain.BaseDirectory;//读取Excel模板文件FileStreamfs=newFileStream(currentDirectory+"BoxPackinglist.xlsx",FileMode.Open,FileA......
  • fastadmin命令生成通用代码及菜单
    1.确认数据表结构(引用文档相关规则,不适用的额外处理)2.生成通用代码及菜单phpthinkcrud-t表名(user_log)-r引用表名(user)-k引用表关联键(user_id)-p引用表主键(id)-u13.生成菜单关联操作(增删改查操作,用于权限分配)phpthinkmenu-c表名(user_log)......
  • 随机生成树问题的研究与思考
    随机选父亲法随机选父亲法代码如下:voidRandomFatherGenerator(intn,Graph&g){ std::mt19937rnd(time(nullptr)); for(inti=2;i<=n;i++){ g.addUndirectedEdge(rnd%(i-1)+1,i); }}上述代码会生成一个以\(1\)为根的树。每个点的期望深度用随机选父亲法构造一......
  • python利用openpyxl实现利用excel每行数据填入对应模板批量生成excel
    一、openpyxl常见操作可以参考:https://blog.csdn.net/JunChen681/article/details/1260532061、openpyxl把excel分成了三层Workbook是对工作簿的抽象(工作簿,一个excel文件包含多个sheet。)Worksheet是对表格的抽象(工作表,一个workbook有多个,表名识别,如“sheet......
  • Android studio 修改APK打包生成名称
    在app的build.gradle的android{}添加一下代码android.applicationVariants.all{variant->variant.outputs.all{defcreateTime=newDate().format("YYYYMMdd",TimeZone.getTimeZone("GMT+08:00"))//在这里修改apk文件名......