Carlos Hierro Gutiérrez Daniel Martínez Piñero Juan Manuel Ríos Martín José Sánchez López Adelgazamiento en escala de Adelgazamiento en escala de grises
Adelgazamiento en escala de grises caso general del adelgazamiento en binario El procedimiento es similar: Se buscan los puntos simples En escala de grises se sustituye por el menor de sus vecinos (en binario se cambiaba el 1 por 0) Para que el algoritmo sea extensible al caso binario, consideramos el 0 como blanco y el 255 como negro Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Introducción Introducción
Fuerza de un camino: La fuerza de un camino P 0,P 1,...P N es el menor valor de todos los pixeles que componen el camino. Grado de conectividad: El grado de conectividad de dos pixeles P y Q, es la mayor de las fuerzas de todos los caminos posibles entre P y Q. Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Conceptos previos F(i,j)=min { p / P i,...,P j } G(i,j)=max { F ij }
Se dice que un pixel es un punto simple, cuando al sustituir su valor por el menor de sus vecinos, no modifica el grado de conectividad de cualquier par de puntos de entre sus vecinos. Además de los puntos que no cumplan la definición anterior, hay que considerar otros puntos que no se consideran simples: - Punto aislado: Seria aquel punto que es mayor que todos sus vecinos. - Punto final: Seria aquel punto que solo tiene un vecino mayor que él. Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Punto Simple
1050 a b Punto simple Punto NO simple (si cambiamos el pixel central por el menor de sus vecinos, el grado de conectividad entre a y b cambia de 50 a 10) Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Ejemplos de Punto Simple
Punto final Punto aislado Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Ejemplos de Punto Simple
El tratamiento se hace en entornos 3x3 El estudio se va haciendo de forma circular: Norte,Este,Sur,Oeste. Norte: el vecino de menor valor de P es N Este: el vecino de menor valor de P es E Sur: el vecino de menor valor de P es S Oeste: el vecino de menor valor de P es O N O S E Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Algoritmo P
Comprobamos que el pixel no sea final ni aislado Pasamos a comprobar si el pixel es simple Calculamos el grado de conectividad entre cualquier par de 8-vecinos del pixel Cambiamos el valor del pixel central por el menor de sus vecinos y que este en la dirección actual Recalculamos el grado de conectividad entre cualquier par de 8-vecinos del pixel Si cambia algún grado de conectividad el pixel NO es simple, entonces debe preservar su valor original Si los grados de conectividad son los mismos antes y después del cambio, el pixel es SIMPLE, por lo que marcamos el pixel para su posterior modificación Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Algoritmo
Para el grado de conectividad seria necesario calcular todos los caminos de todos los 8-vecinos del pixel que estamos tratando Para calcular el grado de conectividad de cada par de vecinos del pixel que se está tratando, es necesario calcular la fuerza de todos los caminos posibles entre dicho par de vecinos. Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Caminos
Clasificación de los caminos en 3 tipos acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Caminos entre ‘a’ y ‘c’: Caminos
acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Caminos entre ‘a’ y ‘f’: Caminos
acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e acb d hgi f e Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Caminos entre ‘a’ e ‘i’: Caminos
No es necesario calcular el grado de conectividad en algunos casos: Vecinos con distancia 1: ab G(a,,b) = min{a,b} Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Caminos
(Caso general) Si la fuerza de un camino es el valor de uno de los extremos, ese va a ser el grado de conectividad. Ejemplo: acb d hgi f e (Si la fuerza es ‘a’ o ‘i’, el grado conectividad será ese valor y no tendremos que seguir calculando el resto de fuerzas) Si F(a,b,c,f,i) = min{a,i} entonces G(a,i)=min{a,i} F(a,b,c,f,i) = 10 y podemos comprobar que ningún otro camino va a tener una fuerza mayor => G(a,i) = 10 Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Caminos acb i f
Otro caso a tener en cuenta para disminuir el calculo de fuerzas No hay que calcular el grado de conectividad de aquellos pixeles que sean menores o iguales que el resto de vecinos No hay que calcular el grado de conectividad de ninguno de los pixeles con valor 10. Ya que siempre va a valer 10. Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Ejemplo: Caminos
acb d hgi f e G(a,c)=120 F(a,b,c)=50 F(a,e,c)=100 F(a,d,g,h,i,f,c)=120 F(a,d,h,f,c)=120 F(a,d,g,h,f,c)=120 F(a,d,h,i,f,c)=120 G(a,f)=120 F(a,b,c,f)=50 F(a,b,f)=50 F(a,e,f)=100 F(a,d,g,h,i)=120 No es necesario calcular mas fuerzas G(a,i)=150 F(a,b,c,f,i)=50 F(a,b,f,i)=50 F(a,e,i)=100 F(a,d,g,h,i)=150 no es necesario calcular mas fuerzas G(a,h)=150 G(a,g)=150 G(c,i)=120 G(c,h)=120 G(c,g)=120 G(c,d)=120 G(d,f)=120 G(d,i)=150 G(f,g)=120 G(g,i)=150 Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Ejemplos
G(a,c)=120 G(a,f)=120 G(a,i)=150 G(a,h)=150 G(a,g)=150 G(c,i)=120 G(c,h)=120 G(c,g)=120 G(c,d)=120 G(d,f)=120 G(d,i)=150 G(f,g)=120 G(g,i)=150 Cambiamos el pixel central por el menor de sus vecinos Los grados de conectividad son los mismos PUNTO SIMPLE POR EL NORTE acb d hgi f e Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Ejemplos
G(c,i)=50 G(c,g)=50 G(f,g)=50 G(g,i)= G(c,i)=50 G(c,g)=10 G(f,g)=10 G(g,i)=10 Los grados de conectividad decrecen PUNTO NO SIMPLE Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones acb d hgi f e Ejemplos 10
Biomedicina: - Contar leucocitos en la sangre. - Contar cromosomas. - Análisis automático de rayos X. - Detección automática de tumores. Industria: - Detección de defectos en objetos. - Clasificación. - Posicionamiento. Seguridad: - Clasificación de huellas digitales. - Identificación (facial, retina...). - Detección de incendios. Introducción Conceptos previos Punto simple Ejemplos de puntos simples AlgoritmoCaminosEjemplosAplicaciones Aplicaciones