Descargar

Procesamiento global de imágenes (página 3)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red Transformaciones del histograma. La diferencia entre diferentes dispositivos (televisores, cámaras, escáneres) se modela con una transformación de gama. Si el comportamiento del dispositivo fuera perfectamente lineal, Gama = 1. Blanco Negro ¿Dónde está el 50% de gris? ¿Es la escala lineal? ¿Dónde estaría si tomáramos una foto?

edu.red Transformaciones del histograma. Otra transformación habitual es la ecualización del histograma (del latín aequalis = igual). Ecualización del histograma: es una transformación definida de forma que el histograma resultante se reparte uniformemente en todo el rango de grises. (Gp:) 0 (Gp:) 255 (Gp:) 127

(Gp:) 0 (Gp:) 255 (Gp:) 127

0 255 128 64 192 0 255 128 64 192 ¿? En este caso se usa una función escalonada:f: array [0..255] de byte +

edu.red Transformaciones del histograma. ¿Cómo definir f para conseguir la ecualización? Idea: suponer que a la salida hay 5 niveles de gris. (Gp:) 0 (Gp:) 255 (Gp:) 127

0 255 128 64 192 (Gp:) 0 (Gp:) 4 (Gp:) 2 (Gp:) 1 (Gp:) 3

20% 20% 20% 20% 20% para todo píxel (x,y) de R hacer R(x,y):= f[A(x,y)] (Gp:) 0 (Gp:) 4 (Gp:) 2 (Gp:) 1 (Gp:) 3

edu.red Transformaciones del histograma. Algoritmo. Cálculo de la función de ecualización del histograma. Entrada. Histograma: array [0,…,255] de entero np: entero (número total de píxeles = mx*my) Salida. f: array [0,…,255] de byte

Algoritmo: f[0]:= 0 acumulado:= Histograma[0] para i:= 1, …, 254 hacer f[i]:= acumulado*255/np acumulado:= acumulado + Histograma[i] finpara f[255]:= 255 La función de ecualización es la integral del histograma, escalada por el factor 255/np.

edu.red Transformaciones del histograma. Imagen de entrada (A) Imagen ecualizada (R) Histograma de A Histograma de R Función f +

edu.red Transformaciones del histograma. Ejemplos. Ecualización del histograma. Cuidado, en algunos casos los resultados pueden ser artificiosos. Cada canal (R,G,B) es ecualizado por separado

edu.red Transformaciones del histograma. Umbralización de imágenes. En algunas aplicaciones puede ser interesante convertir la imagen en binaria, o recortar cierto rango de valores. Las funciones tienen las siguientes formas: 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192

Valor de entrada Valor de salida Umbralizar la imagen con valor cte. 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192

Valor de entrada Cortar un rango y mantener el resto 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192

Valor de entrada Seleccionar un rango Umbral Umbral inferior Umbral superior +

edu.red Transformaciones del histograma. Las funciones serán del estilo: f(v):= si v > umbral1 entonces g(v) sino h(v) Transformación de binarización (saturar a 0 ó 255).f(v):= si v < umbral entonces 0 sino 255 Ejemplo 1. La binarización se suele aplicar en OCR. Imagen de entrada (256 grises) Umbral = 160 Umbral = 215

edu.red Transformaciones del histograma. Imagen de entrada Umbralizar, u = 42 Umbralizar, u = 180 Cortar rango (192, 255) La separación del objeto del fondo se llama segmentación. La umbralización se puede usar para segmentar… … aunque por sí sola no suele funcionar muy bien. Ejemplo 2. Segmentación de objetos.

edu.red Transformaciones del histograma. Conclusiones: Una transformación elemental se puede ver desde distintas perspectivas: Como una función unidimensional: f: N ? N Como una curva tonal. Como una modificación del histograma. La característica fundamental es que cada píxel se trata independientemente de los demás. Los histogramas son útiles para encontrar la transformación adecuada. En imágenes RGB, aplicamos la misma operación a los 3 canales para que se mantenga el color.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente