求数据集 的均值

'''
程序一,求数据集的均值
'''
#import os
# import cv2
# from numpy import *
# #dataset\test_1206\images
# # img_dir='./dataset/defect_myself_1213/train/images'
# img_dir ='./dataset/P80_test/images'
# img_list=os.listdir(img_dir)
# img_size=256
# sum_r=0
# sum_g=0
# sum_b=0
# count=0
#
# for img_name in img_list:
#     img_path=os.path.join(img_dir,img_name)
#     img=cv2.imread(img_path)
#     img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#     img=cv2.resize(img,(img_size,img_size))
#     sum_r=sum_r+img[:,:,0].mean()
#     sum_g=sum_g+img[:,:,1].mean()
#     sum_b=sum_b+img[:,:,2].mean()
#     count=count+1
#
# sum_r=sum_r/count
# sum_g=sum_g/count
# sum_b=sum_b/count
# img_mean=[sum_r,sum_g,sum_b]
# print('count:',count)
# print ('img_mean:',img_mean)# BGR 的均值为:[115.79398158283313, 89.15586755059039, 84.4981419263159]


'''
程序二  求均值,并输出每一张图像的均值。
'''
#求得均值为RGB [84.4981419263159,89.15586755059039,115.79398158283313]
import os
import numpy as np
import cv2

ims_path = './dataset/defect_myself_1213/train/images/'  # 图像数据集的路径
ims_list = os.listdir(ims_path)
R_means = []
G_means = []
B_means = []
for im_list in ims_list:
    im = cv2.imread(ims_path + im_list)
    # extrect value of diffient channel
    im_R = im[:, :, 0]
    im_G = im[:, :, 1]
    im_B = im[:, :, 2]
    # count mean for every channel
    im_R_mean = np.mean(im_R)
    im_G_mean = np.mean(im_G)
    im_B_mean = np.mean(im_B)
    # save single mean value to a set of means
    R_means.append(im_R_mean)
    G_means.append(im_G_mean)
    B_means.append(im_B_mean)
    print('图片:{} 的 RGB平均值为 \n[{},{},{}]'.format(im_list, im_R_mean, im_G_mean, im_B_mean))
# three sets  into a large set
a = [R_means, G_means, B_means]
mean = [0, 0, 0]
# count the sum of different channel means
mean[0] = np.mean(a[0])
mean[1] = np.mean(a[1])
mean[2] = np.mean(a[2])
print('数据集的BGR平均值为\n[{},{},{}]'.format(mean[0], mean[1], mean[2]))
# cv.imread()读取Img时候将rgb转换为了bgr,谢谢taylover-pei的修正。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值