Abriendo archivos CZI#

Cuando se trabaja con datos de imágenes de microscopía, circulan muchos formatos de archivo como el formato Carl Zeiss Image (CZI). En este cuaderno, abriremos un archivo .czi utilizando la biblioteca czifile.

Nota: Se recomienda usar AICSImageIO para leer archivos CZI como se muestra en este cuaderno.

Ver también

import czifile

from pathlib import Path
from skimage.io import imshow
import numpy as np

Normalmente podemos abrir una imagen proporcionando una ruta a la función imread. A continuación, estamos utilizando una imagen que muestra un ala de Drosophila durante la etapa pupal, amablemente proporcionada por Romina Piscitello-Gómez (MPI CBG).

image = czifile.imread(Path("../../data/PupalWing.czi"))

Un buen primer paso es inspeccionar la dimensionalidad de la imagen.

image.shape
(1, 1, 1, 80, 520, 692, 1)

Estos formatos generalmente tienen dimensiones extra para acomodar muchas formas de datos diferentes. Este es su orden común cuando se trabaja con archivos CZI:

  • ‘X’: ‘Ancho’

  • ‘Y’: ‘Alto’

  • ‘C’: ‘Canal’

  • ‘Z’: ‘Corte’ (profundidad)

  • ‘T’: ‘Tiempo’

  • ‘R’: ‘Rotación’

  • ‘S’: ‘Escena’ / regiones de interés contiguas en una imagen de mosaico

Sabemos que nuestra imagen tenía tres dimensiones cuando la adquirimos. Un truco para deshacerse de las dimensiones extra innecesarias es la función np.squeeze.

image_squeezed = np.squeeze(image)
image_squeezed.shape
(80, 520, 692)

La imagen es un array de numpy y, por lo tanto, podemos trabajar con ella normalmente.

type(image_squeezed)
numpy.ndarray
cropped_slice_image = image_squeezed[40, 200:400, 500:700]

imshow(cropped_slice_image)
C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\skimage\io\_plugins\matplotlib_plugin.py:150: UserWarning: Low image data range; displaying image with stretched contrast.
  lo, hi, cmap = _get_display_range(image)
<matplotlib.image.AxesImage at 0x2347feaee50>
../_images/e0023d4602d14b6ad0f931d30465e7fc86bcb37529c1239d41408f082fa3ac85.png