**背景:**尝试读取pointnet data目录下的modelnet40_ply_hdf5_2048的ply_data_test0.h5文件
**方法:**使用python 带的h5py库
H5将文件结构简化成两个主要的对象类型:
数据集( dataset ),就是同一类型数据的多维数组。
组( group ),是一种容器结构,可以包含数据集和其他组。可以类比于字典,有键(key,组成员的名称)和值(value,组成员对象本身(组或者数据集))。group中可以存放dataset或者其他的group。
代码:
import datetime
import os
import h5py
import numpy as np
# f = h5py.File('path/filename.h5','r') #
f.keys()
print([key for key in f.keys()]) # [ 'data','faceId','label','normal']
print('first, we get values of data:', f['data'][:])
print('then, we get values of faceId:', f['faceId'][:])
print('then, we get values of label:', f['label'][:])
print('then, we get values of normal:', f['normal'][:])
结果:
['data', 'faceId', 'label', 'normal']
first, we get values of data: [[[ 0.09804384 -0.16375712 -0.88815236]
[-0.23270538 0.20258272 0.9004929 ]
[-0.2567441 -0.25970268 -0.49264464]
...
[-0.39915243 0.11317458 -0.87155205]
[-0.39915243 0.06148027 -0.857612 ]
[ 0.05074174 0.04413288 0.13229933]]
[[ 0.20449115 -0.17876036 -0.26874724]
[ 0.5294547 -0.17876036 0.4605134 ]
[-0.8554975 0.13038772 0.38782808]
...
[ 0.2670532 0.18073112 0.38040978]
[ 0.36202607 -0.17876036 0.4798663 ]
[ 0.6899876 -0.15274835 -0.37982458]]
[[ 0.38357666 0.00212124 0.05954606]
[-0.42229837 0.20936729 -0.8230786 ]
[-0.23924135 -0.04004277 -0.15795444]
...
[ 0.38357666 0.2655373 0.2687802 ]
[ 0.37341475 0.33041206 -0.72324896]
[-0.24751316 0.33041206 -0.7215534 ]]
...
[[-0.38415328 -0.16114914 -0.6218874 ]
[ 0.00392835 -0.02491629 0.44730824]
[ 0.02237595 -0.6116565 -0.58407295]
...
[-0.22889152 -0.02491629 -0.24840479]
[-0.09168476 -0.1332527 0.6117723 ]
[ 0.48451158 0.59355694 0.264553 ]]
[[-0.4601383 -0.21205927 0.6261256 ]
[-0.05555431 -0.21205927 0.36458415]
[-0.58251834 -0.21205927 -0.46451336]
...
[-0.5088089 0.02324454 -0.5640317 ]
[-0.2864309 -0.21205927 0.4084229 ]
[ 0.25568604 0.47028542 0.22113988]]
[[ 0.35419393 -0.00310405 0.712245 ]
[-0.3457064 -0.48265827 -0.70713836]
[ 0.32981533 -0.4874904 -0.78599405]
...
[ 0.33184078 -0.3098195 0.79109985]
[ 0.33954543 0.089734 0.31315172]
[ 0.04358377 0.01087826 0.26341754]]]
then, we get values of faceId: [[7386 5884 401 ... 6947 6947 7504]
[ 784 784 609 ... 787 784 1110]
[ 344 229 213 ... 346 222 220]
...
[ 22 170 96 ... 171 7 36]
[ 60 10 6 ... 31 58 43]
[ 100 86 0 ... 43 26 9]]
then, we get values of label: [[30]
[27]
[30]
...
[23]
[ 9]
[33]]
then, we get values of normal: [[[ 0.00000e+00 0.00000e+00 1.00000e+00]
[ 0.00000e+00 0.00000e+00 -1.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
...
[ 1.00000e+00 0.00000e+00 0.00000e+00]
[ 1.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 -1.00000e+00 0.00000e+00]]
[[ 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
[ 1.00000e+00 0.00000e+00 9.35224e-04]
...
[ 0.00000e+00 -1.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 1.00000e+00]]
[[-1.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 1.00000e+00]
[ 0.00000e+00 -1.00000e+00 0.00000e+00]
...
[-1.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 -1.00000e+00 0.00000e+00]
[ 0.00000e+00 -1.00000e+00 0.00000e+00]]
...
[[ 0.00000e+00 0.00000e+00 1.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
...
[ 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 -1.00000e+00]
[-1.00000e+00 0.00000e+00 0.00000e+00]]
[[ 0.00000e+00 -1.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]
...
[ 5.48694e-01 -6.76040e-01 4.91838e-01]
[ 0.00000e+00 -1.00000e+00 0.00000e+00]
[-5.48694e-01 -6.76040e-01 -4.91838e-01]]
[[ 0.00000e+00 0.00000e+00 -1.00000e+00]
[ 0.00000e+00 0.00000e+00 1.00000e+00]
[ 0.00000e+00 0.00000e+00 1.00000e+00]
...
[ 0.00000e+00 0.00000e+00 -1.00000e+00]
[ 0.00000e+00 -1.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00]]]