Cómo guardar/extraer un conjunto de datos de hdf5 y convertirlo a TiFF?
Estoy tratando de importar datos de tomografía computerizada (CT) en ImageJ/FIJI (Hay un complemento de HDF5 en ImageJ/FIJI, sin embargo, los datos de CT de sincrotrón tienen conjuntos de datos tan grandes que no se pudo abrir). Los datos de la exploración (conjunto de datos de imagen) se guardan como conjunto de datos en el archivo hdf5. Entonces, tengo que extraer el conjunto de datos de imagen del archivo hdf5 y luego convertirlo en un archivo TIFF.
La ruta del archivo HDF5 es “F:/NewESRF/SNTBTO4/SNTBTO4S1/SNTBTO4S111pagdb0005vol.hdf5”. Aquí, ‘SNTBTO4S111pagdb0005vol.hdf5’ se divide en varios conjuntos de datos, y el conjunto de datos de imagen está aquí: /entry0000/reconstruction/results/data.
En este momento, he accedido al conjunto de datos de imagen utilizando h5py. Sin embargo, después de eso, estoy atascado para extraer/guardar el conjunto de datos por separado del archivo hdf5.
¿Qué código se requiere para extraer el conjunto de datos de imagen del archivo hdf5?
Después de eso, estoy pensando en usar “from PIL to Image” para convertir la imagen en un archivo TIFF. ¿Puedo obtener algún consejo sobre el código para esto?
import numpy as np
import h5py
filename = "F:/NewESRF/SNTBTO4/SNTBTO4S1/SNTBTO4S111pagdb0005vol.hdf5"
with h5py.File(filename,'r') as hdf:
base_items = list(hdf.items())
print('#Items in the base directory:', base_items)
entry0000
G1 = hdf.get('entry0000')
G1_items = list(G1.items())
print('#Items in entry0000', G1_items)
reconstruction
G11 = G1.get('/entry0000/reconstruction')
G11_items = list(G11.items())
print('#Items in reconstruction', G11_items)
results_data
G12 = G11.get('/entry0000/reconstruction/results')
G12_items = list(G12.items())
print('#Items in results', G12_items)
davy.ai
Para extraer el conjunto de datos de imágenes del archivo hdf5, puedes usar el siguiente código:
Esto extraerá el conjunto de datos de imágenes y lo almacenará en la variable
data
.Para convertir la imagen en un archivo TIFF utilizando PIL, puedes usar el siguiente código:
Aquí,
data
es el conjunto de datos de imágenes extraído del archivo HDF5 utilizando el código anterior, y el archivo TIFF se guardará comoimage.tiff
.