python实现:计算一组图片的均值(mean)和标准差(std)

摘要

在深度学习中,需要对数据预处理,经常会遇到都为三元组的标准差,在不知道数据集标准差和均值时,默认为[0.5,0.5,05.],本文给出计算均值和标准差的代码。

代码

import numpy as np
import cv2
import os

data_path = '/path/to/images'  # 数据集路径
img_height, img_width = 512, 512  # 图片尺寸

# 初始化变量
img_count = 0
img_sum = np.zeros((3,))
img_squared_sum = np.zeros((3,))

# 遍历数据集文件夹中的所有图片
for root, dirs, files in os.walk(data_path):
    for file in files:
        img_path = os.path.join(root, file)
        img = cv2.imread(img_path).astype(np.float32) / 255
        img = cv2.resize(img, (img_width, img_height))  # 缩放图片至指定尺寸
        img_count += 1
        img_sum += np.sum(img, axis=(0, 1))
        img_squared_sum += np.sum(img ** 2, axis=(0, 1))

# 计算每个通道的均值和标准差
channel_mean = img_sum / (img_count * img_height * img_width)
channel_std = np.sqrt((img_squared_sum / (img_count * img_height * img_width)) - (channel_mean ** 2))

print('每个通道的均值:', channel_mean)
print('每个通道的标准差:', channel_std)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cpdr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值