这个主要是由于电脑内存不够,无法将所有文件合并以后进行计算,譬如kitti数据集,动辄十几个G
CSDNhttps://mp.csdn.net/mp_blog/creation/editor/122554667
import os
import numpy as np
files=os.getcwd()+'/part'
filenames=os.listdir(files)
filenames.sort(key=lambda x:int(x.split('.')[0]))
sizes=[]
means=[]
for filename in filenames:
filepath=files+'/'
filepath=filepath+filename
print(filepath)
num=int(filename[:-4])
pc=np.genfromtxt(filepath)
coords = pc[:, :3]
coord_max_cur = np.amax(coords, axis=0, keepdims=True)
coord_min_cur = np.amin(coords, axis=0, keepdims=True)
coord_mean_cur = np.mean(coords, axis=0, keepdims=True)
size=pc.shape[0]
means.append(coord_mean_cur)
sizes.append(size)
if num==0:
coord_max=np.amax(coords, axis=0, keepdims=True)
coord_min=np.amin(coords, axis=0, keepdims=True)
else:
if coord_max_cur[0][0]>coord_max[0][0]:
coord_max[0][0]=coord_max_cur[0][0]
if coord_max_cur[0][1]>coord_max[0][1]:
coord_max[0][1]=coord_max_cur[0][1]
if coord_max_cur[0][2]>coord_max[0][2]:
coord_max[0][2]=coord_max_cur[0][2]
if coord_min_cur[0][0]<coord_min[0][0]:
coord_min[0][0]=coord_min_cur[0][0]
if coord_min_cur[0][1]<coord_min[0][1]:
coord_min[0][1]=coord_min_cur[0][1]
if coord_min_cur[0][2]<coord_min[0][2]:
coord_min[0][2]=coord_min_cur[0][2]
print("max",coord_max)
print("min",coord_min)
product = [x*y for x,y in zip(means,sizes)]
holimean=sum(product)/sum(sizes)
print("mean",holimean)