es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para extraer el conjunto de datos de imágenes del archivo hdf5, puedes usar el siguiente código:

    import h5py  
    with h5py.File(filename, 'r') as hdf:
        data = hdf['entry0000']['reconstruction']['results']['data'][...]
    

    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:

    from PIL import Image
    img = Image.fromarray(data)
    img.save('image.tiff')
    

    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á como image.tiff.

Comments are closed.