Especificación de histogramas

Existen librerías que nos facilitan el cálculo de especificaciones de histogramas (o matching de histogramas). En el siguiente ejemplo veremos cómo usar skimage para este propósito, partiendo del histograma normalizado hist de una imagen de entrada img.

import numpy as np
from skimage import exposure

#Generamos la distribución acumulativa del histograma
cdf = np.cumsum(hist)
#Generamos un arreglo con valores aleatorios según la distribución
pixel_values  = np.interp(np.random.rand(N*M), cdf, range(0,L))
#Convertimos el arreglo en una imagen.
i_to_match= pixel_values.reshape(N,M)
matched_image = exposure.match_histograms(img, i_to_match)

En donde N y M son dimensiones que podemos seleccionar para la imagen con valores aleatorios según el histograma de entrada y L es el máximo de valores de intensidades posibles (p.ej 256).

Last updated