Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Extracción de Frontera (Boundary Extraction) La frontera de un conjunto A, escrita como β(A), se puede obtener erosionando A por B y luego calcular la diferencia entre A y su erosión. Esto es β ( A) = A − ( AΘB ) donde B es un elemento estructural apropiado. A continuación se presenta un ejemplo de la operación de frontera. La figura 15 muestra una imagen binaria y el resultado usando la ecuación anterior con un elemento estructural de 3x3 estándar N8 (figura 9 (b)). Figura 15: Imagen binaria y el resultado de la extracción de frontera con un elemento estructural N8. Si bien el elemento estructural usado es muy simple, existen otras elecciones más complejas, por ejemplo, de tamaño 5x5 que ampliaría el grosor de la frontera a dos o tres píxeles. Afinado o Adelgazamiento (Thinning) El afinado de un conjunto A por el elemento estructural B, puede ser definido en términos de la transformada hit-or-miss como A ⊗ B = A − ( A ∗ B) = A ∩ ( A ∗ B)C Una definición más útil para el afinado simétrico de A está basado en una sucesión de elementos estructurales {B} = {B 1 , B 2 , B 3 ,... B n } donde Bi es una versión rotada de Bi-1. Considerando lo anterior, definimos el afinado por una sucesión de elementos estructurales como Operaciones Morfológicas en Imágenes Binarias – 3ra parte 1 Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 A ⊗ {B} = ((...(( A ⊗ B 1 ) ⊗ B 2 )...) ⊗ B n ) Es decir, el proceso consiste en afinar el conjunto A un paso con B1, luego afinar el resultado con B2 y así sucesivamente hasta Bn. El proceso se repite hasta que no ocurren más cambios. Cada paso de afinado se realiza usando la primera ecuación. La figura 16 (a) muestra una serie de elementos estructurales frecuentemente usados para el afinado y la figura 16 (b) muestra un conjunto A que se desea afinar aplicando el procedimiento recién presentado. La figura 16 (c) exhibe el resultado de afinar A con B1, y las figuras 16 (d) a (k) son el resultado de afinar con los Bi restantes. (a) (b) (d) (e) (g) (h) (j) (k) Figura 16: a) Secuencia de los elementos estructurales usados para el afinado. b) Conjunto A. c) Resultado de afinar A con el primer elemento. (d)-(i) Resultados del afinado con los siguientes 7 elementos. j) Resultado de afinar sucesivamente con los primeros 3 elementos. k) Resultado final (luego de la convergencia). Operaciones Morfológicas en Imágenes Binarias – 3ra parte 2 Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Engrosamiento (Thickening) El engrosamiento es la operación morfológica dual del afinado y se define mediante la siguiente expresión donde B es un elemento estructural apropiado para el engrosamiento. Al igual que con el afinado, el engrosamiento se puede definir como una operación secuencial Los elementos estructurales usados para el engrosamiento son los mismos que los del afinado, pero cambiando los 1’s por 0’s y viceversa. Sin embargo, esta implementación no se suele usar en la práctica. El procedimiento usual consiste en afinar el fondo del conjunto deseado y complementar el resultado. En otras palabras, para engrosar un conjunto A lo que se hace es formar el conjunto C=AC, afinar C y luego complementar. Relleno de Región (Region Filling) En ciertas aplicaciones, es conveniente poder reconstruir una imagen que ha sufrido varias erosiones o poder llenar un objeto que está definido por una frontera. Para ello, se puede utilizar una operación llamada relleno de región cuyos algoritmos están basados en dilataciones, complementaciones e intersecciones. La figura 17 muestra un conjunto que contiene un subconjunto cuyos elementos están 8-conectados y constituyen la frontera de una región. Comenzando por un punto p (conocido como ‘semilla’ o ‘seed’) que se encuentre dentro de la frontera, el objetivo es rellenar completamente la región con 1’s. Consideremos que todos aquellos puntos que no pertenecen a la frontera son cero (el fondo o background) y asignemos al punto p (la semilla) el valor uno. El siguiente procedimiento, entonces, rellena la región determinada por el punto p con 1’s: k = 1,2,3,... X k = ( X k −1 ⊕ B ) ∩ AC donde X0=p, y B es el elemento estructural de la figura 17 (c). El algoritmo converge cuando Xk = Xk-1. El conjunto resultante de la unión de Xk y A contiene a la región rellenada y su frontera. Es importante notar que el proceso de dilatación rellenaría todo el conjunto. Sin embargo, la intersección en cada paso con AC limita el proceso a la región de interés (este tipo de dilatación recibe el nombre de dilatación condicionada). Aunque en este ejemplo sólo rellenamos una región o subconjunto, el concepto puede aplicarse a un número finito de regiones, siempre que conozcamos puntos dentro de éstas (las semillas). La figura 18 muestra una imagen que contiene varios círculos blancos con círculos en negros en su interior. Este tipo de imagen puede ser el resultado de aplicar un umbral a otra imagen que consistía de esferas brillantes. Los círculos negros son el resultado de las reflexiones. El objetivo es eliminar las reflexiones mediante el relleno de región. La figura 18 (a) muestra un punto (la semilla) dentro de una de las esferas, y la figura 18 (b) muesOperaciones Morfológicas en Imágenes Binarias – 3ra parte 3 Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 tra el resultado de rellenar esa región. Finalmente, la figura 18 (c) es el resultado de rellenar todas las esferas. Figura 17: Relleno de región. a) Conjunto A. b) Complemento de A. c) Elemento estructural B. d) Punto inicial dentro de la frontera (semilla). (e) a (h) Varios pasos del relleno. i) Resultado final producto de la unión de (a) con (h). Figura 18: a) Imagen binaria (el punto blanco dentro de una de las regiones es el punto inicial o semilla para el algoritmo de relleno. b) Resultado de rellenar esa región. c) Resultado de rellenar todas las regiones. Operaciones Morfológicas en Imágenes Binarias – 3ra parte 4 Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Esqueleto El esqueleto intenta representar la forma de un objeto con un número relativamente pequeño de píxeles. De esta forma, todos los píxeles del esqueleto son estructuralmente necesarios. La posición, orientación y longitud de las líneas del esqueleto se corresponden con aquellas equivalentes de la imagen original. La tarea de sacar características de una imagen queda simplificada al obtener su esqueleto. Como se ve en la figura 19, el concepto de esqueleto, S(A), de un conjunto A es intuitivamente simple. De la figura deducimos que i) ii) Si z es un punto de S(A) y (D)z es el disco más grande centrado en z y contenido en A, no se puede encontrar un disco más grande (no necesariamente centrado en z) que contenga a (D)z y esté incluido en A. El disco (D)z se denomina disco máximo. El disco (D)z contacta a la frontera de A en dos o más puntos diferentes. El esqueleto de A puede ser expresado en términos de erosiones y aperturas. Esto es, K S ( A) = U S k ( A) S k ( A) = ( AΘkB) − ( AΘkB ) o B k =0 donde B es un elemento estructural, y (AΘkB) indica k erosiones sucesivas de A: ( AΘkB) = (...( AΘB)ΘB)Θ...)ΘB k veces, y K es el último paso iterativo antes de que A sea erosionado por completo (y se obtenga el conjunto vacío). En otras palabras K = max{k | ( AΘkB) ≠ ∅} Las dos primeras expresiones sugieren que el esqueleto S(A) se puede obtener como la unión de subconjuntos esqueleto Sk(A). También se puede demostrar que el conjunto original A puede ser reconstruido a partir de estos subconjuntos utilizando la siguiente eK cuación A = U ( S k ( A) ⊕ kB) k =0 donde (Sk(A) ⊕kB) representa k dilataciones sucesivas de Sk(A); es decir ( S k ( A) ⊕ kB) = (...( S k ( A) ⊕ B ) ⊕ B ) ⊕ ...) ⊕ B Operaciones Morfológicas en Imágenes Binarias – 3ra parte 5 Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Figura 19: a) Conjunto A. b) Varias posiciones de los discos máximos con centro en el esqueleto de A. c) Otro disco máximo ubicado en un segmento diferente del esqueleto de A. d) Esqueleto completo. Poda (Pruning) Los métodos de poda son un complemento esencial al afinado y cálculo del esqueleto ya que estos procedimientos tienden a dejar componentes parásitos que deben ser eliminados luego. Comenzamos la discusión con un problema de poda y después desarrollaremos una solución morfológica basada en operaciones ya vistas. Una aproximación común en el reconocimiento automático de caracteres manuscritos es analizar la forma de los esqueletos de cada caracter. Estos esqueletos frecuentemente están caracterizados por espuelas (o puntas o crestas) que constituyen componentes parásitos. Éstos se originan durante la erosión por no uniformidades en los trazos que forman los caracteres. Vamos a considerar que la longitud de los componentes parásitos no exceden un determinado número de caracteres. La figura 20 (a) muestra el esqueleto de una ‘a’ manuscrita. El complemento parásito sobre el lado izquierdo del caracter es lo que queremos eliminar. La solución está basada en suprimir una bifurcación mediante la eliminación sucesiva de su punto final. Esto también eliminará cualquier otra bifurcación en el caracter pero, en este ejemplo vamos a asumir que cualquier bifurcación de 3 o menos píxeles será eliminada. El afinado de un conjunto A con una secuencia de elementos estructurales diseñados sólo para la detección de puntos finales realiza la tarea deseada. Esto es X 1 = A ⊗ {B} donde {B} representa la secuencia de elementos estructurales mostrados en las figuras 20 (b) y (c). Los elementos estructurales consisten de dos estructuras diferentes y donde cada una está rotada 90 grados. Aplicando tres veces la ecuación anterior a A se consigue el conjunto X1 mostrado en la figura 20 (d). El siguiente paso es restaurar el caracter a su forma original, pero sin las bifurcaciones parásitas. Para hacer esto, primero se debe formar el conjunto X2 de manera que contenga todos los puntos finales en X1: 8 X 2 = U ( X1 ∗ Bk ) k =1 k donde los B son los mismos detectores de puntos finales mostrados en la figura 20 (b) y (c). El siguiente paso es dilatar tres veces los puntos finales, usando al conjunto A como delimitador: X3 = (X 2 ⊕ H ) ∩ A Operaciones Morfológicas en Imágenes Binarias – 3ra parte 6 Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 donde H es un elemento estructural de 1’s. Finalmente, el resultado deseado se obtiene de la unión de X3 y X1 (figura 20 (g)). X 4 = X1 ∪ X 3 Figura 20: Imagen original. (b) y (c) Elementos estructurales usados para borrar los puntos finales. d) Resultado luego de 3 procesos de afinado. e) Puntos finales de (d). Dilatación de los puntos finales condicionada por A. g) Imagen podada. Referencias 1) Digital Image Processing Second Edition, Rafael C. Gonzalez – Richard E. Woods, capítulo 9. Operaciones Morfológicas en Imágenes Binarias – 3ra parte 7