1.3.4 Pseudocolor y Falso color


Hay ocasiones en las que tenemos imágenes en escala de grises y por diferentes motivos nos gustaría una representación de las mismas en color. Casos claros de este tipo se dan en diversas ciencias. Por ejemplo en medicina, una tomografía axial o una radiografía se obtienen en principio en escala de grises debido a que no se usa el espectro visible para obtener dichas imágenes. Otro ejemplo se encuentra en radioastronomía, que para obtener imágenes se usan toda una gama diversa del espectro radioeléctrico aparte de la luz visible.

La necesidad de tener las imágenes anteriores en colores aparece porque es más sencillo encontrar ciertas zonas con información importante si hay un cambio brusco de color que si simplementa hay algún cambio de intensidad.

Es evidente que los colores que se van a usar en estas imágenes son, en principio, arbitrarios. Es decir, no va a indicar el color usado ninguna relación con el color que tendría en la vida real. De ahí que denominemos a éstas técnicas de pseudocolor.

No se debe confundir el pseudocolor con el falso color. Este último se utiliza para dar color a imágenes en escala de grises pero con una relación directa con la vida real. Por ejemplo colorear fotos o películas antiguas. Se deduce por tanto que las técnicas de falso color contienen una componente más artística que científica por lo cual nos vamos a centrar en las técnicas de pseudocolor.

Density Slicing (D-S)

Esta técnica es la más sencilla. Vemos la imagen en grises como una función bidimensional en la que los ejes X e Y son la anchura y altura de la imágen en pixels y el eje Z la intensidad de gris (entre 0 y 255 si usamos un byte por pixel). El método consiste en dividir con una serie de planos paralelos al XY distintos niveles de intensidad de gris (grey Density) y a cada nivel de gris que queda entre los espacios interplanos (capas o Slices) se le asigna un color arbitrario.

Por ejemplo si cojemos 3 planos tendríamos que asignar 4 colores. El primero a las intensidades entre 0 y 63, el segundo a lasintensidades entre 64 y 127, otro entre 128 y 191 y el último color a las intensidades entre 192 y 255.

No conviene, sin embargo, usar un número de planos excesivo (en la practica posterior permitimos hasta 15) debido a que la imagen puede terminar haciéndose confusa y no ver aquello que estemos buscando en la misma.

El pseudocódigo de esta técnica quedaría así :

n_iguales=256/(n_capas+1); //1 capa->2 regiones de 128 posiciones del mismo color

sobrantes=256%(n_capas+1); //El resto de la división que queda sin asignar

for (i=0;i<(n_capas+1);i++)

if (sobrantes>0)

for (i=0; i<ancho;i++)

Tenemos una matriz de imagen imagen_entrada que cada posición es la intensidad de gris de ese pixel. Primero generamos una matriz de 256 posiciones m_color que vamos a dividir en n_capas+1 pues n_capas es el nº de planos y a cada zona de m_color le damos un color de paleta. Así la imagen_salida es el color que se asigne a imagen_entrada. Se usa sobrantes para cuando no hay una division entera entre 256 y n_capas+1.

Density Slicing Normalizada

Esta es una mejora inmediata de la técnica anterior. Consiste simplemente en realizar un preprocesado antes de aplicar D-S.

Lo que se hace es coger en la imágen el gris más y menos intenso (máscercanos al blanco y al negro respectivamente) y la división de planos se hace tomando a estas intensidades como máxima y mínima en vez de usar el blanco y el negro.

Da resultados muy buenos, sobre todo si la imagen está poco contrastada.

El código quedaría:

gris_max=0;

gris_min=255;

for (i=0;i<ancho;i++)

gris_dif=gris_max-gris_min;

gris_min y gris_max serán ahor nuestros límites, y el total de intensidades será gris_dif. Hay que aplicar ahor D-S pero con gris_min, gris_max y gris_dif en lugar de 0, 255 y 256.

Jugando con la practica anterior se pueden observar que en lugares en los que apenas se percibía un cambio de intensidad si que se ven cambios al pasarlo a pseudocolor.