Morfología matemática Aplicación a procesado de imágenes binarias y monocromáticas Autores: José Luis Alba, Fernando Martín - Universidad de Vigo Jesús Cid - Universidad Carlos III de Madrid Inmaculada Mora - Universidad Rey Juan Carlos Ultima revisión: abril de 2006
Índice Introducción Elementos del procesado morfológico Dilatación Erosión Filtros morfológicos Algoritmos morfológicos Morfología de grises Aplicaciones José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 2
Introducción Esquema general del análisis de imágenes Técnicas de nivel intermedio SEGMENTACIÓN PREPROCESADO (MEJORA- RESTAURACIÓN) EXTRACCIÓN DE CARACTERÍSTICAS BASE DE CONOCIMIENTO imagen ADQUISICIÓN DE LA IMAGEN RECONOCIMIENTO CLASIFICACIÓN INTERPRETACIÓN Resultado Técnicas de bajo nivel Técnicas de alto nivel José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 3
Morfología: Estudio de la forma y la estructura Morfología matemática Es una técnica de procesado no lineal de la imagen, interesada en la geometría de los objetos Análisis morfológico Permite extraer componentes de la imagen que son útiles en la representación y descripción de la forma de las regiones: Fronteras Esqueletos, Permite obtener características relevantes de los objetos en la imagen: Forma Tamaño,... Procesado morfológico: Permite transformar la forma o la estructura de los objetos en una imagen José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 4
Tipos: Morfología binaria (es la más frecuente). Morfología de niveles de gris Morfología de imágenes policromáticas Usos: Post-procesado: Por ejemplo, tras un proceso de segmentación Segmentación Procesado morfológico Pre-procesado: por ejemplo, previo a un sistema de reconocimiento. Análisis morfológico Descriptores Reconocimiento de objetos Aplicaciones: Análisis de imágenes médicas, teledetección, visión artificial,... José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 5
Ejemplos: Extracción de los dedos de una mano Separar llaves Contar el número de células Contar el número de dientes en una rueda José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 6
Elementos del procesado morfológico Los fundamentos del análisis y procesado morfológico se basan en el álgebra de conjuntos y en la topología Tres elementos: a) Conjuntos ( Imágenes) b) Operadores Morfológicos (dilatación, erosión, apertura/cierre) c) Elementos Estructurantes (EE) Imagen binaria Elemento estructurante Imagen binaria Conjunto Conjunto Operador morfológico Conjunto José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 7
Elementos del procesado morfológico Conjuntos El lenguaje que se usa en las técnicas morfológicas proviene de la teoría de conjuntos Cada conjunto representa la forma de los objetos en una imagen Imágenes binarias: Cada conjunto de todos los píxeles negros/blancos de una imagen binaria, es una descripción completa de la imagen: Si Blanco = 1 Negro = 0 (o viceversa), se definen dos conjuntos (o planos): Primer plano: A = {(x,y) f(x,y) = 1} Fondo: B = {(x,y) f(x,y) = 0} En una imagen binaria, los conjuntos existentes son puntos de un espacio 2 D: cada elemento es un punto de coordenadas (x,y) en el plano bidimensional (de la imagen) Imágenes monocromáticas: Una imagen de niveles de gris puede ser representada como conjuntos cuyas componentes se encuentran en un espacio 3D. En este caso, 2 componentes de cada elemento de un conjunto se refiere a las coordenadas del píxel, y la tercera componente está relacionada con la intensidad. José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 8
En virtud de la equivalencia entre imágenes binarias y conjuntos, cualquier transformación sobre un conjunto define una nueva imagen binaria Operaciones sobre conjuntos Sean A y B conjuntos de puntos en un espacio Z 2 con componentes a = (a 1,a 2 ), b = (b 1, b 2 ) Complementario: A c = A c = {(x,y) (x,y) A} Traslación: A x = A + x = {a + x a A} con x = (x,y) Transposición (Reflection):  = -A = {-a a A} - a = (- a 1,- a 2 ) El transpuesto de un conjunto simétrico, coincide con él mismo Diferencia A-B = {a a A, a B} = A B c  A A c José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 9
Elementos del procesado morfológico Elemento estructurante Idea: Examinar la estructura geométrica de una imagen usando como sonda un patrón de ajuste que se denomina elemento estructurante (E.E.). La forma y tamaño del EE caracteriza las formas de los objetos presentes en una imagen permiten determinar la estructura de un conjunto X El EE se maneja de modo análogo a una máscara de convolución, aunque ahora trabajamos con operaciones sobre conjuntos y la convolución se basa en operaciones aritméticas Imagen original EE encaja EE no encaja José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 10
Ajuste del EE El EE puede tener cualquier tamaño y forma (horizontal, vertical, cuadrado,...). Su centro se sitúa en cada píxel de la imagen original, aplicando la operación morfológica sobre los puntos situados bajo el E.E. EE Imagen Original I(x,y) Elemento Estructurante (cuadrado de lado 3) Imagen resultante José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 11
Elementos del procesado morfológico Operadores morfológicos Operador ϕ (Imagen): Cualquier transformación de una imagen cuyo resultado es otra imagen Tipos: Extensivo: si el resultado contiene a la imagen original A ϕ (A) Anti-extensivo: si el resultado está contenido en la imagen original ϕ (A) A Idempotente: si al aplicar el operador dos o más veces, el resultado es el mismo que si se aplicara una sola vez ϕ (ϕ (A)) = ϕ (A) Un operador puede no ser ni extensivo ni antiextensivo José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 12
Dilatación Dilatación de la imagen A por el EE C : δ C (A) = A C = {x (Ĉ ) x A 0} Se obtiene en base a la reflexión de C con respecto a su origen y un desplazamiento x Suponiendo que el EE contiene al origen y es simétrico (en este caso el EE y su reflexión son iguales): la salida de la dilatación es el conjunto de puntos barridos por el centro del EE mientras algún punto de C tocaba a algún punto de A. Original EE vertical 11 EE cuadrado lado=11 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 13
Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 La figura a trazos muestra la imagen original. La línea continua muestra los límites para que la intersección de A y ^C no sea 0 Todos los puntos dentro de este límite forman la dilatación de A por C En el caso inferior se usa un EE para obtener mas dilatación vertical que horizontal José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 14
Propiedades: Añade todos los puntos del fondo que tocan el borde de un objeto la dilatación es extensiva Rellena entrantes en los que no quepa el EE (pequeños agujeros y bahías) EE cuadrado José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 15
Qué ventaja tiene sobre un filtro paso bajo? Dilatación: El resultado es una imagen binaria FPB: El resultado es una imagen de niveles de gris y se requiere un paso añadido de umbralización para conseguir una imagen binaria Dilatación de A usando el EE B A Los segmentos rotos se han unido EE Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 16
Ejemplo Imagen original Imagen binarizada y complementada A c Dilatación de A c por B=ones(3,3) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 17
Erosión Erosión de la imagen A por el EE C: ε C (A) = A C = {x C x A} Conjunto de todos los puntos x, tales que C trasladado x, están contenidos en A Suponiendo que el EE contiene al origen y es simétrico: la salida de la erosión es el conjunto de puntos barridos por el centro del EE mientras se cumpla que todos los puntos de C estaban contenidos en A. Elimina grupos de píxeles donde el EE no cabe. Original EE cuadrado lado=11 EE vertical 11 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 18
El conjunto de puntos incluidos en la zona sombreada forman la erosión de A usando EE Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 19
Propiedades: La erosión es antiextensiva reduce el tamaño del objeto Elimina elementos en los que no quepa el EE (pequeñas islas y protuberancias) Es la erosión inversa de la dilatación? No, pero están relacionadas (A C) c = (A c Ĉ) EE: cuadrado José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 20
Una de las aplicaciones más típicas de la erosión es la eliminación de detalles irrelevantes (desde el punto de vista de tamaño) erosión dilatación En esta figura se desea obtener solo los objetos de mayor tamaño Para ello erosionamos con un EE de tamaño algo menor que el objeto que queremos extraer. El resultado son los objetos en cuestión pero de menor tamaño. Para que recuperen el tamaño original se aplica una dilatación con el mismo EE José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 21
Ejemplo Erosión de A c por B=ones(3,3) Erosión de A c por B=ones(10,1) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 22
Filtros morfológicos Apertura: γ B (A) = A o B = (A B) B = δ B (ε B (A)) Se obtiene desplazando el EE B por el interior del conjunto y eliminando las zonas por las que B no pueda pasar. Ejemplo: EE = {Círculo de diámetro 7, Vertical 11, Cuadrado lado 11} Original Círculo 7 Vertical 11 Cuadrado 11 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 23
La frontera de A o B está formada por los puntos en B que alcanzan los puntos mas lejanos de A, cuando B se desplaza dentro de los bordes de A A o B = z { B z B z A} (siendo {.} la unión de conjuntos) Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 24
Propiedades: Es un operador antiextensivo: γ B (A) A A o B es un subconjunto de A (A o B ) o B = A o B Algunos efectos: Alisa contornos (redondear las esquinas donde no quepa el EE Eliminar las protuberancias donde no quepa el EE Separa objetos en puntos estrechos es un operador idempotente? José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 25
Ejemplo Erosión de A c por B=ones(10,1) Dilatación del resultado por B=ones(10,1) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 26
Cierre: ϕ B (A) = A B = A B = (A B) B = ε B (δ B (A)) Se obtiene desplazando el EE B por el exterior del conjunto y anexionando las zonas por las que B no pueda pasar. Ejemplo: EE = {Vertical 11, Cuadrado lado 11, Círculo de diámetro 7} Original Vertical 11 Cuadrado 11 Círculo 7 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 27
Representación geométrica similar al caso del operador apertura con la diferencia de que ahora los desplazamientos de B se producen por fuera de al frontera de A Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 28
Propiedades: Es un operador extensivo: A ϕ B (A) A es un subconjunto de A B (A B) B = A B Algunos efectos : Tiende a alisar porciones del contorno, fusiona estrechas grietas, y rellena vacíos en el contorno Rellena agujeros pequeños Eliminar los entrantes pequeños Conecta objetos vecinos Es un operador idempotente Apertura y Cierre son Duales (A B) c = (A c o B^) con respecto al complementario y a la transposición José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 29
Apertura vs cierre Apertura: Eliminación del puente su anchura es inferior a la del EE El EE no puede ser completamente incluido en A Lo mismo pasa con los dos salientes de la derecha Las esquinas exteriores son redondeadas mientras que las interiores no se ven afectadas Cierre: En este caso las esquinas internas son redondeadas mientas que las externas permanecen intactas Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 30
Ejemplo Dilatación de A c por B=ones(3,3) Erosión del resultado por B=ones(3,3) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 31
Banco de filtros morfológicos binarios José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 32
Ejemplo: distinguir entre círculos y líneas Apertura con EE circular de D=7 Etiquetado 70 60 N. pixel/objeto 50 40 30 20 10 0 0 5 10 15 20 25 30 objeto José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 33
Ejemplo: contar el número de segmentos rectos Etiquetado Nº líneas? EE H EE V EE D i EE D e 6 + 6 + 4 + 1 = 17 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 34
Implementación Matlab: SE=strel(forma,parametros) % crea un elemento estructurante de una forma determinada o un array de elementos estructurantes; ó SE=strel(matriz binaria) % para formarlo directamente con una matriz binaria SE=reflect(SE) % refleja el elemento estructurante respecto a su centro SE=translate(SE,V) % traslada el elemento estructurante según el vector V J = imdilate(i,se) % la imagen I puede ser binaria o en gris J = imerode(i,se) % la imagen I puede ser binaria o en gris J = imclose(i,se) % SE no puede ser un array de elementos estructurantes J = imopen(i,se) % SE no puede ser un array de elementos estructurantes José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 35
Ejemplo: eliminación de ruido Imagen A Filtro f(a,b) Imagen A f ( A, B) = (A B) B (elimina demasiada información) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 36
Ejemplo: eliminación de ruido (información a priori) f ( A, B ') = ((A B ') B' ) A (el elemento estructurante B es 15x7) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 37
Transformada Hit-Miss: (para localizar una forma X en la imagen) se define una ventana que contenga al objeto: W / X W se define el complemento de X respecto a W: W-X La operación Hit-Miss se define como: A W = (A X) (A C [W-X]) el primer conjunto (Hit) se queda con los objetos que incluyen a X (mayores que X) el segundo conjunto (Miss) se queda con los incluidos en X (menores que X) Matlab: J = bwhitmiss(i,se1,se2); % SE1 =X, SE2=W-X Equivale a J=imerode(I,SE1) & imerode (~I,SE2) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 38
Transformada Hit-Miss (ejemplo): Imagen Patrón Imagen Patrón José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 39
Algoritmos morfológicos Extracción de contorno: β (A) = A -(A B) B es un elemento estructurante adecuado a la aplicación Matlab: [J]=bwperim(I,[conectividad]); José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 40
Debido al espesor del EE, el borde tiene un espesor de 1 píxel Si se usara un EE de 5x5 tendría un espesor de 2 píxeles Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 41
Tres tipos de gradientes: bordes exteriores: δ B (A) - A bordes interiores: A - ε B (A) bordes anchos: δ B (A) - ε B (A) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 42
Algoritmos morfológicos Llenado de regiones: se parte de un conjunto A de puntos 8-conectados que encierran una región que se desea rellenar se asigna el valor 1 a un punto p interior al contorno A (X 0 = p) se realiza la dilatación condicional dada por la fórmula siguiente con un elemento estructurante 3x3 de conectividad-4 (cruz): X k = (Xk 1 B) A c el algoritmo termina cuando X k = X k+1 el conjunto final es X k U A Matlab: [J, puntos]= imfill(i,[puntos],[conectividad],[ holes ]); % se puede hacer interactivo José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 43
Ejemplo: Dilatación condicional X k = (X k-1 B) A C k=1,2, Si X n = X n-1 Y = X n A (y fin del proceso) A B X 0 Este proceso rellenaría toda el área, por lo que se aplica la condición de intersección con A c Se empieza a partir de un punto dentro de la región X 1 X 2 X 3 X 4 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 44
Algoritmos morfológicos Extracción de componentes conectadas: existe un subconjunto Y de puntos conectados incluido en A se conoce un punto p = 1 interior a Y (X 0 = p) se realiza la dilatación condicional dada por la fórmula siguiente con un elemento estructurante 3x3 de conectividad-8 (bloque): Xk = (Xk 1 B) A el algoritmo termina cuando X k = X k-1 el conjunto final es X k = Y Matlab:[L,n] = bwlabel(i, [conectividad]); % L contiene una etiqueta para cada objeto conectado, n es el nº de objetos conectados José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 45
Ejemplo: Dilatación condicional X k = (X k-1 B) A k=1,2, A X 0 Si X n =X n-1 Y=X n (y fin del proceso) Expresión similar al caso anterior excepto que aquí usamos A La condición de intersección con A elimina la dilatación centrada en un píxel de valor 0 B X 1 X 2 X 3 X 4 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 46
Algoritmos morfológicos Esqueleto: Dada una imagen A, se dice que z pertenece al esqueleto de A si y solo sí: Si (D) z es el disco más grande centrado en z y contenido en A, no existe ningún otro disco más grande conteniendo a (D) z e incluido en A. (en tal caso, (D) z se denomina disco máximo). (D) z toca la frontera de A en, al menos, dos puntos. Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 47
Determinación del esqueleto: S(A) = k=1k S k (A) S k (A) = (A k B) (A k B) B donde k indica k sucesivas erosiones ( (A B) B) ) B K es la última iteración antes de que A se erosione a un conjunto vacío Puede demostrarse que es una operación invertible: A = k=1k (S k (A) B) Matlab:[J] = bwmorph(i, [ skel ],[N]); % N es el numero de iteraciones % N=Inf ==> hasta que la imagen no cambie (N=K) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 48
Algoritmos morfológicos Thinning: operación parecida a skeleton A B = A (A* B) = A (A* B) 1 2 3 n 1 2 n { B} = { B, B, B, B } A { B} = (( (( A B ) B ) ) B c (utilizando la transformada hit - miss) Normalmente : thinning con una secuencia de elementos estructurantes rotados : El algoritmo morfológico tiene una alternativa más sencilla: se define la vecindad del punto candidato a ser eliminado ( p se define Z0( p se define NZ( p entonces se anula ) como las transiciones fondo - objeto; si : [ 2 NZ( p ) 6] [ Z0( p ) = 1] [( p p p = 0) ( Z0( p ) 1) ] [( p p p = 0) ( Z0( p ) 1) ] 1 1 ) como los vecinos no nulos de p 1 p 1 1 El procedimiento se repite hasta que no hay más cambios. 2 Matlab:[J] = bwmorph(i, [ thin ],[N]); % N es el numero de iteraciones % N=Inf ==> hasta que la imagen no cambie 4 8 1 ; 2 1 ) : p p p 3 4 5 p p p 2 2 1 6 p p p 4 9 8 7 6 4 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 49
Algoritmos morfológicos Thickening: operación dual de thinning A Ο B = A (A * B) (utilizando la transformada hit - miss) Normalmente : thickening con una secuencia de elementos estructurantes rotados : 1 2 3 n 1 2 n { B} = { B, B, B, B } AΟ{ B} = (( (( AΟB ) ΟB ) ) ΟB Alternativa: aplicar thinning sobre A c y complementar el resultado. Ventaja: el thinning del fondo limita al thickening. Matlab:J = bwmorph(i, [ thicken ],N); % N es el numero de iteraciones % O también: J=~(bwmorph(~I, thin, [N])); José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 50
Ejemplo A A c A A c Adelgazar Complementario Eliminación de discontinuidades José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 51
Ejemplos de esqueletización, adelgazamiento y engorde original skeleton thinning thickening José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 52
Algoritmos morfológicos: Cubierta convexa Convexidad: A es convexo si contiene cualquier línea recta uniendo dos de sus puntos Cubierta convexa ( convex hull ) de S: Es el menor conjunto convexo, H, que contiene a S. (Equivalente a rodear S con una goma elástica) Deficiencia convexa de S Se define por: H-S Cubrimiento convexo Componentes: Imagen: A Elementos estructurantes: B i, i= 1,2,3,4 Inicialización: X 0, punto frontera B i-1 es una rotación de B i de 90 o en el sentido horario Útiles en descripción de objetos B 1 B 2 B 3 B 4 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 53
Algoritmo: Aplicación iterativa del algoritmo hit-miss a A con B 1 ; cuando no se producen mas cambios se aplica la unión con A y se denomina al resultado D 1. Se continua con B 2, B 3 y B 4 obteniendo D 2, D 3 y D 4 la unión de D i Convex Hull Formalmente: X i k = (X i k-1 B) A k=1,2,3,. Con x i 0 = A D i = lim k X i k donde lim indica detención cuando x i k = x i k-1 H = D 1 D 2 D 3 D 4 No garantiza que H sea la cubierta convexa. El resultado puede ser mayor que las dimensiones mínimas que garanticen la convexidad Una simple aproximación es limitar el resultado por las componentes verticales y horizontales del conjunto original de puntos José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 54
Ejemplo Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 55
Algoritmos morfológicos Poda (Pruning) Los algoritmos de poda persiguen eliminar componentes espúreas resultantes de aplicar operaciones morfológicas de tipo adelgazamiento o esqueletización. En general, requieren alguna información a priori acerca del tipo de imagen a tratar. Usada en el reconocimiento automático de caracteres escritos a mano 4 pasos: Adelgazamiento (para eliminación de zonas espúreas usando EE específicos para detectar puntos de inflexión) X 1 = A {B} Recuperación (de la forma original): X 2 = k=1 8 (X 1 B k ) Dilatación (con un EE de 3x3 unos ): X 3 = (X 2 H) A Poda: X 4 = X 1 X 3 Matlab:J = bwmorph(i, [ spur ]); José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 56
Morfología de grises La morfología de grises (mas de 2 niveles) considera una dimensión más que las imágenes binarias, la altura (representada por la intensidad de cada píxel). Tipos de elementos estructurantes: Morfología Plana: Si se utiliza un elemento estructurante plano (mismo valor en todos sus elementos: 1 ó 0 ). Morfología No Plana: Si los valores del EE son distintos José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 57
Morfología Plana: Se examinan los píxeles de la imagen que están debajo de los elementos a 1 en la máscara (EE) Se ordenan los niveles de gris de los píxeles y se toma: El máximo valor: para la dilatación (supremos locales) (f b) (s,t) = max {f(s-x,t-y) + b(x,y) / (s-x, t-y) D f ; (x,y) D b } Análogo al caso de imágenes binarias en las que los dos conjuntos A y EE tenían que solaparse al menos en un punto El mínimo valor: para la erosión (ínfimos locales) (f b) (s,t) = min {f(s+x,t+y) - b(x,y) / (s+x, t+y) D f ; (x,y) D b } El EE tiene que estar completamente contenido en el conjunto que esta siendo erosionado Similares al operador convolución, cambiando Max (min) por el Sumatorio y la suma (resta) por el producto Son Duales (f b) c = (f c ^b) (s,t) con f c = - f (x,y) y ^b = b (-x,-y) José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 58
Dilatación Si los valores del EE son positivos, la imagen resultante tiende a ser mas brillante que la imagen de entrada Los detalles oscuros son reducidos o eliminados, dependiendo de sus valores y forma con respecto al EE Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 59
Erosión Si EE es positivo, la imagen resultante tiende a ser oscura Se reduce el efecto de los detalles brillantes que son mas pequeños que el EE, siendo el grado de reducción dependiente de los niveles de gris que rodean al detalle y los valores y forma del EE José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 60
Ejemplo: Original Dilatación Imagen de niveles de gris 512 x 512 EE = 5 x 5, plano Erosión Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 61
Apertura y cierre: La apertura y cierre simplifican las imágenes (equivalen a un filtro paso bajo no lineal), tanto en imágenes binarias como de grises. Apertura/cierre eliminan picos positivos/negativos más estrechos que el elemento estructurante. La apertura/cierre son duales Apertura (Opening) Cierre (Closing) Erosión seguida de una dilatación Dilatación seguida de una erosión José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 62
Apertura con EE plano Elimina picos más estrechos que el EE Cierre con EE plano Elimina valles más estrechos que el EE EE = 5 EE = 3 Erosión Dilatación Dilatación (erosión) Apertura Erosión (dilatación) Cierre 0 20 40 60 80 Residuo 0 20 40 60 80 Residuo José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 63
Apertura / Cierre Apertura Tamaño reducido de los detalles brillantes No se aprecia ningún efecto sobre los niveles oscuros Original Imagen de niveles de gris 512 x 512 EE = 5 x 5, plano Cierre Reducción de los detalles pequeños u oscuros Pequeño efecto sobre los detalles brillantes Figuras tomadas de Gonzalez, Woods, Digital Image Processing (2nd Ed.), Prentice Hall, 2002 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 64
Ejemplos: Elemento estructurante plano (círculo 5) Original Erosión Apertura Dilatación Cierre José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 65
filtros morfológicos: top-hat Top-Hat: Resalta objetos de color contrario al fondo Positivo (white top-hat): Negativo (black top-hat o bottom-hat): A A B A B A Matlab:J = imtophat(i,se); % O J=bwmorph(I, tophat,[n]) % La última no permite elegir el SE Matlab:J = imbothat(i,se); % O J=bwmorph(I, bothat,[n]) % La última no permite elegir el SE José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 66
Top-Hat: ejemplo (morfología en grises). Closing (disco radio 5) - + José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 67
Aplicaciones Extracción de los dedos de una mano Separar llaves de monedas Contar el número de células Contar el número de dientes de una rueda José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 68
Aplicaciones Extracción de los dedos de una mano Original Umbral 108 Erosión C5 Apertura con C31 Umbral - apertura José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 69
Etiquetado Apertura V9 Apertura H7 Etiquetado 5 dedos Superposición de los dedos segmentados en la mano José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 70
Aplicaciones Contar número de llaves y monedas Original Erosión C5 Umbral 190 Etiquetado I Seg bin I eliminar objeto más grande(fondo) Dilatación C5 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 71
Segmentar por nivel de gris 6 llaves 6 llaves 6 monedas Negativo 190 Etiquetado 12 objetos José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 72
Aplicaciones Contar el número de células Original apertura-cierre (C5) umbral 128 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 73
Erosión C5 Erosión C5 Erosión C5 Erosión C5 Etiquetado 16 células José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 74
Aplicaciones Contar el número de dientes de una rueda Original Cierre C11 Diferencia Apertura C3 Dilatación C9 Apertura C19 José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 75
Mínimo Apertura (C3, C19) Segmentación binaria 120 muescas José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 76
Bibliografía Básica: Digital Image Processing, Rafael C. González, Ed. Prentice Hall, 2nd edition. Complementaria: Fundamentals of Digital Image Processing, Anil K. Jain, Ed. Prentice Hall, 1989. The image processing handbook, John C. Russ, 2nd ed, CRC Press, cop. 1995 Digital Image Processing, William K. Pratt, 2nd ed, John Wiley & Sons, 1991. José Luis Alba, Fernando Martín - Universidad de Vigo; Jesús Cid - Universidad Carlos III; Inmaculada Mora - Universidad Rey Juan Carlos 77