Tipos de operaciones. Histogramas. O, también, podemos calcular histogramas conjuntos, en 2 ó 3 dimensiones. Canales R y G Canales G y B Canales R y B Estos histogramas aportan información sobre los rangos de colores más frecuentes en la imagen. En teoría, el histograma es de 256×256 celdas (bins). Pero, para obtener buenos resultados, mejor usar un número reducido de celdas. Por ejemplo 64×64 ó 32×32.
Tipos de operaciones. Histogramas. Uso de histogramas para mejorar la calidad de las imágenes. Ejemplo. Elhistogramaindica tonosmuy oscuros. Solución.Aplicar unoperadorque “estire”el histograma.
Operaciones elementales con píxeles. A: imagen de entrada. R: imagen resultante (del mismo tamaño que A). Operaciones unarias: Sumar una constante: R(x, y):= A(x, y) + a Restar una constante: R(x, y):= A(x, y) – a Multiplicar por una constante: R(x, y):= b·A(x, y) Dividir por una constante: R(x, y):= A(x, y)/b Transformación lineal genérica: R(x, y):= bA(x, y)+a Transformación de gama: R(x, y):= A(x, y)c Cualquier función N?N: R(x, y):= f(A(x,y))
Operaciones elementales con píxeles. Sumar una constante: R(x, y):= A(x, y) + a Significado: incrementar el brillo de la imagen en la cantidad indicada en a. El histograma se desplaza a la derecha en a píxeles. a +
Operaciones elementales con píxeles. Ojo: la suma puede ser mayor que 255… La operación debería comprobar el overflow:si A(x, y) + a > 255 entonces R(x, y):= 255sino R(x, y):= A(x, y) + a
Esto se debe hacer también en las demás operaciones, comprobando si el valor es <0 ó >255. Coloquialmente, un píxel “por encima” de 255 o por debajo de 0 se dice queestá saturado. La saturación suponeuna pérdida deinformación. Ejemplo de imagen muy saturada
Operaciones elementales con píxeles. En imágenes en color, la suma se realiza sobre los tres canales (R, G y B) y con el mismo valor. R(x, y).R:= A(x, y).R + a R(x, y).G:= A(x, y).G + a R(x, y).B:= A(x, y).B + a ¿Qué ocurre si se suma un valor distinto a cada canal?
Operaciones elementales con píxeles. Restar una constante: R(x, y):= A(x, y) – a Significado: decrementar el brillo de la imagen en la cantidad indicada en a. El histograma se desplaza a la izquierda en a píxeles. a
Operaciones elementales con píxeles. Multiplicar por una constante: R(x, y):= b·A(x, y) Significado: aumentar la intensidad de la imagen en b. El histograma se “estira” hacia la derecha.
Operaciones elementales con píxeles. Tanto en la suma como en la multiplicación, se aumenta el nivel de gris de los píxeles, pero de forma distinta. En la suma, el parámetro a (entero) indica el número de niveles de gris a aumentar: de -255 a 255. En el producto, el parámetro b (real) indica el factor a multiplicar. b=1 ? Ningún cambio b=2 ? Se duplica el valor de gris. Los píx. >127 se saturan. b=0,5 ? Se “encoge” a la mitad el histograma. Suma Multiplicación 0 + a 0*b
Operaciones elementales con píxeles. Dividir por una constante: R(x, y):= A(x, y) / b = Multiplicar por 1/b … ¡obviamente! El histograma se “encoge”.
Transformaciones del histograma. Las transformaciones elementales se pueden ver como funciones f: N ? N. Interpretación: para cada valor de gris de entrada hay un valor de salida. 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Valor de entrada Valor de salida f: curva tonal Se puede usar cualquier función f. La transformación hace que se modifique el histograma. +
Transformaciones del histograma. 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Identidad: f(v):= v 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Suma: f(v):= v + a 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Resta: f(v):= v – a a a 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Multiplicar 2: f(v):=2v 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Dividir 2: f(v):= v/2 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Por 3: f(v):= 3v
Transformaciones del histograma. En general, podemos definir una transformación lineal genérica de la forma:f(v):= b·v + a 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Ej. Inversa: f(v):= 255 – v Pero la transformación también puede ser no lineal: cuadrática, polinomial, exponencial, logarítmica, escalonada, etc. ¿Cómo decidir cuál es la transformación más adecuada? ? Usar el histograma.
Transformaciones del histograma. Normalmente, interesa “estirar” el histograma, para conseguir que aparezca todo el rango de valores. Idea: definir una transformación lineal tal que el histograma resultante vaya de 0 a 255. Ajuste lineal o estiramiento (stretch) del histograma: Buscar el valor mínimo del histograma: m Buscar el valor máximo: M f(v):= (v-m)*255/(M-m) m M Nota: Esto es una simple regla de 3 +
Transformaciones del histograma. 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Ejemplo. m= 86, M= 214 R(x,y):= (A(x,y)-86)*1,99 A R Histograma de A Histograma de R Ojo: no necesaria-mente “el máximo” Para imágenes en color, se aplica la misma función a los tres canales (R,G,B)
Transformaciones del histograma. Cuidado: un simple píxel con valor muy alto o muy bajo puede hacer que el ajuste del histograma sea muy malo. Por ejemplo, si hay un píxel con valor 0 y otro con 255, la transformación sería la identidad (la imagen no cambia). Solución: en lugar de mínimo y máximo, ajustar usando dos percentiles del histograma (p. ej. 10%-90%, ó 5%-95%). Histograma de A 5% 5%
Transformaciones del histograma. Más ejemplos de estiramiento lineal del histograma.
Transformaciones del histograma. La transformación de histograma puede tomar cualquier forma (no necesariamente lineal). Ejemplos. 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Valor de entrada Valor de salida Resultado: oscurecer los medios tonos. Parábola: c1v2 + c2v + c3 0 255 128 64 192 Valor de entrada Resultado: aclarar los medios tonos. Raíz: c1v0.5 + c2 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
0 255 128 64 192 Valor de entrada Resultado: aclarar tonos oscuros y oscurecer los claros. Dos trozos de curva (parábola y raíz) (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
Transformaciones del histograma. Elevar a 2, elevar a 1/2, … Se define la transformaciónde gama como: f(v):= 255·(v/255)1/GAMA Gama 1 Gama 2 Gama 4 Gama 0,75 Gama 0,5 0 255 128 64 192 (Gp:) 0 (Gp:) 255 (Gp:) 128 (Gp:) 64 (Gp:) 192
+
Página anterior | Volver al principio del trabajo | Página siguiente |