.dat文件基本上是没有任何头的二进制文件。对于每个样本,它由(256,256,3)个uint8图像,(64,64,1)uint8深度图和1个uint8标签组成。Tensorflow可以使用固定长度的读取器从.dat文件读取数据流。
代码思路:
1.读取.dat文件中的数据块
2.分割出每帧的数据块
3.分割出(256,256,3)帧图像、(64,64,1)图像以及标签
filedir = '路径名'
filenames = []
for filename in os.listdir(filedir):
print(filename)
filenames.append(os.path.join(filedir,filename))
for j in filenames:
print(j)
c = np.fromfile(j, dtype='uint8')
for i in range(c.size//200705):
a = c[i*200705:(i+1)*200705]
print(a)
a = c[:200705]
image = a[:196608]
label = a[200704]
print(label)
# image = a[196608:200704]
im = reshape(image,(256,256,3),order='F')
print(im.shape)
cv2.imshow('image',cv2.cvtColor(im,cv2.COLOR_RGB2BGR))
cv2.waitKey(100)#每张图片停留100ms
cv2.destroyAllWindows()#销毁全部窗口