转载请注明出处,引用部分网上博客,若有侵权还请作者联系与我。
本文针对百度开源提供的智能驾驶平台H5数据进行读取,通过python解析H5格式文件。
百度数据下载地址:
http://roadhackers.baidu.com/#downloads
下载包含三个文件:训练集数据(4.xG),训练集结果(几兆),测试集数据(5.xG),解压后数据量更大,以下分别进行数据解析说明。
1.训练集结果
#!usr/bin/python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import h5py
import xlwt
from datetime import datetime
def write_data_to_excel(name,result):
# 实例化一个Workbook()对象(即excel文件)
wbk = xlwt.Workbook()
# 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
# 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)
today = datetime.today()
# 将获取到的datetime对象仅取日期如:2016-8-9
today_date = datetime.date(today)
# 遍历result中的每个元素。
for i in xrange(len(result)):
#对result的每个子元素作遍历,
for j in xrange(len(result[i])):
#将每一行的每个元素按行号i,列号j,写入到excel中。
sheet.write(i,j,result[i][j])
# 以传递的name+当前日期作为excel名称保存。
wbk.save(name+str(today_date)+'.xls')
f = h5py.File('D:\\AllDownloadFiles\\train-result-119\\119.h5', 'r')
dset = f[f.keys()[0]] #f.keys()只有一个键值:u'attrs'
data = np.array(dset[:,:])
# 数据写入excel表格
write_data_to_excel('D:\\AllDownloadFiles\\train-result-119\\', data);
2.训练集数据
#!usr/bin/python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import h5py
import xlwt
def saveOnePic(fh, data_type, save_dir):
#data_type = "%.3f" % float(index_num)
dset = fh[data_type]
data = np.array(dset[:,:,:])
# 存储一个图片
filePath = save_dir+'\\'+data_type+'.jpg'
cv2.imwrite(filePath, data)
if __name__=="__main__":
f = h5py.File('D:\\AllDownloadFiles\\train-data-119\\119.h5', 'r')
max_num = 100
file_len = len(f.keys())
for index in range(0,max_num-1):
if index < file_len:
index_type = f.keys()[index]
saveOnePic(f, index_type, 'D:\\AllDownloadFiles\\train-data-119')
max_num限制最大个数,可以修改大小。
下面是解析出来的图片:
3.测试集数据
#!usr/bin/python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import h5py
import xlwt
def saveOnePic(fh, data_type, save_dir):
#data_type = "%.3f" % float(index_num)
dset = fh[data_type]
data = np.array(dset[:,:,:])
# 存储一个图片
filePath = save_dir+'\\'+data_type+'.jpg'
cv2.imwrite(filePath, data)
if __name__=="__main__":
f = h5py.File('D:\\AllDownloadFiles\\test-part01.h5\\testfile_part01.h5', 'r')
max_num = 100
file_len = len(f.keys())
for index in range(0,max_num-1):
if index < file_len:
index_type = f.keys()[index]
saveOnePic(f, index_type, 'D:\\AllDownloadFiles\\test-part01.h5')
max_num限制最大个数,可以修改大小。
下面是解析出来的图片:
解析完成,后面就可以用这些图片数据进行算法开发了,加油吧~