Trabajando con imágenes#

Para realizar análisis de datos de imágenes, primero necesitamos ser capaces de realizar algunas operaciones esenciales:

  • abrir imágenes

  • mostrar imágenes

  • examinar las estadísticas de los píxeles

Ver también

Abrir imágenes#

La mayoría de las imágenes con extensiones estándar (tif, png, etc.) se pueden leer utilizando la función skimage.io.imread. En caso de que tu imagen no lo haga, deberías consultar la documentación del formato de archivo correspondiente.

Para usar imread tienes tres posibilidades:

  • usar la ruta absoluta a un archivo de imagen, por ejemplo imread('/Users/username/Desktop/blobs.tif')

  • usar una ruta relativa a donde te encuentras actualmente (puedes averiguarlo usando el comando pwd en una celda), es decir imread('../../data/blobs.tif')

  • usar una url que apunte a un archivo de imagen, por ejemplo del repositorio de GitHub imread('https://github.com/haesleinhuepf/BioImageAnalysisNotebooks/raw/main/data/blobs.tif')

Aquí usamos una ruta relativa. Respecto al cuaderno actual, los datos están dos niveles de carpeta más arriba (../../) en una carpeta llamada data:

from skimage.io import imread

image = imread("../../data/blobs.tif")

Como se mostró anteriormente, las imágenes son simplemente matrices de intensidades. Sin embargo, mostrarlas como tales no es conveniente.

image
array([[ 40,  32,  24, ..., 216, 200, 200],
       [ 56,  40,  24, ..., 232, 216, 216],
       [ 64,  48,  24, ..., 240, 232, 232],
       ...,
       [ 72,  80,  80, ...,  48,  48,  48],
       [ 80,  80,  80, ...,  48,  48,  48],
       [ 96,  88,  80, ...,  48,  48,  48]], dtype=uint8)

Mostrar imágenes#

Hay muchas formas de mostrar imágenes 2D simples. En muchos cuadernos y ejemplos en línea, encontrarás ejemplos usando la función imshow de Matplotlib en una matriz:

from matplotlib import pyplot as plt

plt.imshow(image);
../_images/d5aa543df73b55131a5b2d12b65cdc2e300dad7a934c6fafbd5f36b49dac1a12.png

Desafortunadamente, la función imshow no es una elección óptima para mostrar imágenes de microscopía: no maneja bien los datos multicanal, es difícil manejar rangos de intensidad, etc. A lo largo de este curso, por lo tanto, favorecemos el uso de la función microshow del paquete microfilm o la función imshow del paquete clesperanto. Aprenderemos sobre la segunda solución en los próximos capítulos. Aquí simplemente usamos microshow:

from microfilm.microplot import microshow
microshow(image);
../_images/86f9061a06b2f20b3ed3ddd41075e98754f485f36a8cd0d44daae4545e43ad8f.png

Tablas de búsqueda (también conocidas como mapas de colores)#

También podemos cambiar la tabla de búsqueda, también conocida como “mapa de colores” para la visualización.

microshow(image, cmaps="hot");
../_images/fecc9298b39e8e99284bb1fed5d27c53967aa0c464bb992c0a1370ba7fdf32e5.png
microshow(image, cmaps="pure_cyan");
../_images/ea5543ae72928f06f82dae87c2abc96ec002c347178571a949e44685aab380bd.png

Ejercicio#

Abre el conjunto de datos banana020.tif, visualízalo en una tabla de búsqueda amarillenta.