我正在读取一些我希望附加到hdf5数据集中的图像:
with h5py.File(output_file, 'w') as hf:
i = 0
for p,meta in get_images( file_pattern, star_pattern ):
if i == 0:
hf.create_dataset(dsname, data=p[np.newaxis,...], maxshape=(None,p.shape[0],p.shape[1]), chunks=True)
else:
hf[dsname].resize( (hf[dsname].shape[0]+1), axis=0 )
hf[dsname][-hf[dsname].shape[0]:] = p.copy()
print( ".", end='')
i = i+1
其中p
是i
乘j
的numpy数组(灰度图像),而get_images()
返回元组中图像和元数据的python生成器。
所以问题是当我重新读取输出的文件时,我看到所有图像实际上都是相同的。我假设是因为p
是对在循环中重用的numpy数组的引用。我本以为p.copy()
应该避免这种情况。
我在做什么错了?