Я читаю некоторые изображения, которые я хочу добавить в набор данных в формате 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
by j
(iage в оттенках серого), а get_images()
возвращает Python-генератор изображения и метаданных в кортеже.
поэтому проблема в том, что когда я перечитываю выведенный файл, я вижу, что все изображения на самом деле все идентичны. Я предполагаю, потому что p
является ссылкой на массив Numpy, который повторно используется в цикле. Я бы предположил, что p.copy()
должен предотвратить это.
что я делаю не так?