Está en la página 1de 61

Segmentacin de imgenes

Procesamiento de imgenes biomdicas Curso 2011

Introduccin

Hasta ahora el procesamiento digital de una imagen implicaba, una imagen de entrada y una imagen de salida. Ahora con segmentacin tenemos una imagen de entrada y la salida de este procesamiento son atributos extrados de la imagen.

Segmentacin de imgenes
imagen en sus partes constituyentes hasta un nivel de subdivisin en el que se aslen las regiones u objetos de inters. en una de estas dos propiedades bsicas de los valores del nivel de gris: discontinuidad o similitud entre los niveles de gris de pxeles vecinos.

La segmentacin de imgenes divide la

Los algoritmos de segmentacin se basan

Captura

Diseo de las propiedades de captura. Cmara, megapixels..

Pre-procesamiento

Reducir el entorno no deseado. Fondo, ruido Reconocer y extraer c/u de los objetos presentes en la imagen

Segmentacin

Extraccin de caractersticas

Extraer las caractersticas apropiadas para la identificacin de objetos. Utilizar un modelo para la toma de decisin respecto de la categora del objeto.

Identificacin de objetos

Clasificadores

Entrenamiento

Ejemplo

Problema: identificar frutas

Captura

Decidir como van a ser capturadas las imgenes, distancia, 800x600, 24 bits Quitar el fondo y dejar la fruta.

Pre-procesamiento

Segmentacin

Utilizar algn operador de segmentacin para extraer las frutas de la imagen.


Para cada fruta se va a extraer la longitud y el ndice de circularidad.

Extraccin de caractersticas

Identificacin de objetos

Utilizar algn algoritmo de clasificacin para saber que tipo de fruta es.

Clasificadores

Entrenamiento

Los algoritmos de segmentacin de imgenes monocromticas se basan en alguna de las siguientes propiedades : discontinuidad en los tonos de gris de los pixeles en el entorno que permite detectar puntos aislados, lneas y bordes. Es una construccin de regiones basada en fronteras. similaridad de los tonos de gris de los pixeles en un entorno, que permite construir regiones por divisin y fusin.

Discontinuidad: Se divide la imagen

basndose en cambios bruscos de nivel de gris:

Deteccin de puntos aislados Deteccin de lneas Deteccin de bordes

Similitud: se divide la imagen basndose

en la bsqueda de zonas que tengan valores similares, conforme a unos criterios prefijados:

Umbralizacin Crecimiento de regin

Deteccin de discontinuidades: puntos aislados


Un punto aislado de una imagen tiene un tono de gris que difiere significativamente de los tonos de gris de sus pxeles vecinos, es decir, de los ocho pxeles de su entorno 33. Una mscara (Laplaciano) para detectar un punto aislado es la siguiente:

Diremos que un pxel es un punto aislado si el resultado de aplicar la mscara sobre el pxel (en valor absoluto) es mayor o igual que un cierto valor umbral T, fijado por el toma la decisin. Dicho valor depende de la aplicacin que estemos realizando.

Puntos aislados
La mscara detecta un punto aislado (en el pixel central) con un valor alto de la intensidad. Decimos que un punto aislado ha sido detectado en la regin donde est centrada la mscara, si |R|T La respuesta de la operacin con la mscara ser 0 cuando est centrada en zonas de intensidad uniforme

En Matlab

g=abs(imfilter(double(f), w)) >=T

donde f es la imagen de entrada, w el filtro.


La imagen resultante g es lgica, pues sus valores son 0 1, dependiendo de T, tiene un 1 si el punto es aislado y 0 en otro caso.

Si el valor de T no est dado


w=[-1,-1,-1;-1,8,-1;-1,-1,-1]; g=abs(imfilter(double(f), w); T=max(g(:)); g=g>=T; Al seleccionar a T como el mayor de g, no hay puntos mayores que T, a lo sumo el aislado que es igual a T.

Puntos aislados

Deteccin de discontinuidades : lneas


El prximo paso en nivel de complejidad, es detectar lneas. Si miramos la primer mscara cuando es movida alrededor de una imagen, responde con mayor intensidad en sentido horizontal. Con un fondo constante la mxima respuesta la tenemos cuando la lnea pasa por la fila del medio.

Deteccin de lneas
detectar lneas en una determinada direccin. Los pxeles que forman parte de una lnea horizontal, vertical o diagonal, tendrn respuestas extremas (mayor respuesta en algn sentido) ante alguna de las mscaras siguientes:

Frecuentemente estamos interesados en

Horizontal

+45

Vertical

-45o

Deteccin de lneas

Deteccin de discontinuidades: bordes


Deteccin de borde es la aproximacin ms comn en la deteccin de discontinuidades en la intensidad de la imagen. Recordemos la primera derivada (el gradiente)

f x f = f y

f f f = mag (f ) = + x y
2

2 1/ 2

Deteccin de bordes

El gradiente es cero en reas de intensidad constante y los valores son proporcionales al grado de cambio de intensidad en reas donde los valores de los pixeles son variables. Una propiedad del gradiente es que apunta en la mxima direccin de cambio de la imagen, el ngulo es:

f y ( x, y ) = tan1 f x

Deteccin de bordes

La derivada segunda en el procesamiento de imgenes, generalmente es computada usando el Laplaciano 2D :

2 2 ( , ) f x y f ( x, y ) 2 + f ( x, y ) = 2 y 2 x

Muy sensible al ruido.

Deteccin de bordes
Borde de una imagen digital en tonos de grises

1er y 2da derivada

La segunda derivada tiene una respuesta ms fuerte ante detalles como puntos aislados o lneas, por lo que se usa el Laplaciano para detectar estos tipos de discontinuidad.

Deteccin de bordes
La idea en la mayora de las tcnicas de deteccin de bordes, es calcular un operador local de derivacin y decir que un pixel pertenece a un borde si se produce un cambio brusco de los niveles de gris de sus vecinos. Ya vimos filtros que detectan bordes, los mencionaremos nuevamente y recordemos que tambin detectarn al ruido.

Deteccin de bordes

En general los pasos a seguir son:

Encontrar los lugares donde la primera derivada es mayor que un umbral. Encontrar los lugares donde la segunda derivada tiene un cruce por cero.

Deteccin de bordes 1ra y 2da derivada

En general, no hay forma de conocer si los

pxeles detectados como parte del borde son correctos o no (intuitivamente hablando).

Es lo que se llama falso positivo (el detector

devuelve un pxel cuando en realidad no perteneca a ningn borde) y falso negativo (el detector no devuelve un pxel cuando en realidad perteneca a un borde).

En Matlab

[g,t] = edge(f, mtodo, parmetro)

donde f es la imagen de entrada mtodo: Sobel, Prewitt, Roberts, Laplaciano, Cruce por cero, Canny. g es un arreglo lgico con 1s donde se detect un borde y 0 en otro lugar. parmetro t es opcional, usado por el gradiente para saber que punto pertenece al borde (umbral).

f f = , x

f = Gx , G y y

| f | Gx + G y Gy ( x, y ) = tan G x
1

Deteccin de bordes en imgenes en escala de grises: Marr-Hildreth Los pasos a seguir son:

Aplicar un filtro Gaussiano. Calcular el Laplaciano de la imagen resultante. Determinar los pxeles de paso por cero.

Deteccin de bordes en imgenes en escala de grises: Marr-Hildreth PASO 1 Realizar una convolucin a la imagen I con una matriz G que modeliza una funcin gaussiana bidimensional: donde representa la desviacin tpica.

Ejemplo de mscara 5x5 para el filtro gaussiano con =1.0:

Recurdese que la convolucin de una imagen con una funcin de esta forma emborrona la imagen con un grado de emborronamiento proporcional a (por tanto, se produce una reduccin de ruido).

Deteccin de bordes en imgenes en escala de grises: Marr-Hildreth PASO 2 Calcular el Laplaciano de la imagen resultante.

2 f 2 f f = 2 + 2 x y
2

0 0 1 0 0
+ info

0 0 1 0 2 16 2 1 1 2 1 0 0 1 0 0 0 1 1 2

Deteccin de bordes en imgenes en escala de grises: Marr-Hildreth PASO 3

Determinar los pxeles de paso por cero.

Los pxeles del borde son aquellos tal que el Laplaciano de dos de sus vecinos en posiciones opuestas tienen distinto signo (pxeles de paso por cero). Normalmente se considera un valor umbral para el valor absoluto de la diferencia numrica entre posiciones opuestas para considerar que un pxel es de paso por cero.

Deteccin de bordes en imgenes en escala de grises: Canny

Es el detector de bordes ms potente que existe actualmente. Los pasos principales del algoritmo son: 1.Se realiza una convolucin con un filtro gaussiano. De esta forma la imagen se suaviza (eliminacin de ruidos). 2.Se calcula el gradiente de la imagen suavizada, para determinar los pxeles donde se produce mxima variacin (mayor mdulo del vector gradiente). Tambin se determina la direccin del vector gradiente. 3. La matriz M correspondiente al mdulo del gradiente de la funcin gaussiana tendr valores grandes donde la variacin de la intensidad sea grande. Se eliminan (igualan a cero) aquellos pxeles que no son mximos locales en la direccin del gradiente (que es perpendicular al borde). 4. Se realiza un proceso de doble umbralizacin para determinar los pxeles del borde: se marcan los pxeles con valor por encima de un umbral T1; se marcan aquellos pxeles conectados a los primeros cuyo valor est por encima de un segundo umbral T2 (T2<T1). Esto eliminar falsos bordes o bordes dobles.

Algo ms de informacin on-line

El filtro Gaussiano se ha realizado para =4 y una mscara de tamao 25x25. Los umbrales considerados han sido T1=0.1 y T2=0.04

En resumen:

Deteccin de bordes en imgenes en escala de grises

(1) La deteccin de bordes usando operadores de aproximacin del gradiente tiende a funcionar bien en los casos en que se involucran imgenes con transiciones de intensidad claramente definidas y ruidos relativamente bajos. (2) Los pasos por cero ofrecen una alternativa en los casos en que los bordes estn emborronados o cuando est presente un alto contenido de ruido. El paso por cero ofrece fiabilidad en las localizaciones de bordes y la propiedad de suavizado de la convolucin gaussiana reduce los efectos del ruido. El precio a pagar por estas ventajas es el incremento de complejidad de clculo y tiempo. (3) El algoritmo de Canny es el que ofrece mejores resultados para bordes de imgenes con ruido gaussiano. Para practicar: demo on-line

Deteccin de similitudes
Umbralizacin Crecimiento de regiones

Umbralizacin
Un mtodo bsico para diferenciar un objeto del fondo de la imagen es mediante una simple binarizacin. A travs del histograma obtenemos una grfica donde se muestran el nmero de pxeles por cada nivel de gris que aparece en la imagen. Para binarizar la imagen, se deber elegir un valor adecuado (umbral) dentro de los niveles de grises, de tal forma que el histograma forme un valle en ese nivel. Todos los niveles de grises menores al umbral calculado se convertirn en negro y todos los mayores en blanco.

1 si f ( x, y ) T g ( x, y ) = 0 si f ( x, y ) < T

Existen muchos mtodos de bsqueda del umbral. A continuacin exponemos algunos de ellos.

Umbralizacin

Pixeles etiquetados con 1 corresponden a objetos y pixeles etiquetados con 0 corresponden al fondo. Cuando T es cte, se llama umbralizacin global. Cuando permitimos que T vare la llamamos umbralizacin local.

Umbralizacin global

El umbral slo depende de los valores de nivel de gris. Un umbral automtico puede ser realizado por el siguiente proceso iterativo :
1. 2. 3. 4. 5.

Seleccionar un estimado inicial para To (punto medio entre mx y mn intensidades de la imagen). Segmentar la imagen usando T. Esto genera dos grupos de pixeles (G1 y G2). Calcular los promedios u1 y u2 de G1 y G2. Calcular un nuevo valor umbral T=1/2(u1+u2) Repetir los pasos anteriores 2 a 4 hasta que la diferencia entre T y To sea menor que un valor prefijado.

En Matlab

La funcin que calcula el umbral es: graythresh Usa el mtodo de Otsu para calcular el T. Recordemos nq q = 0,1,2,..., L 1 p q (r q ) = n Donde n es el nmero total de pixels de la imagen, nq el nmero de pixels con intensidad rq, L el nmero total de intensidades distintas en la imagen.

Supongamos un umbral k, tal que C0 es el conjunto de pixels con intensidades [0,1,2,.k-1] y C1 el conjunto de pixeles con intensidades [k,k+1,.L-1]. El mtodo de Otsu usa el umbral que maximiza la 2 varianza entre clases B que es definida como

= 0 ( 0 T ) + 1 ( 1 T )
2 B

0 = pq(r q)
q =0

k 1

1 = p q ( r q )
q=k

L 1

0 = qp q (r q ) / 0
q =0

k 1

1 = qp q (r q ) / 1
q=k

L 1

T = qp q (r q )
q =0

L 1

Finalmente
T=graythresh(f) Donde f es la imagen de entrada y T es el umbral devuelto por la funcin. Para segmentar este valor tiene que ser usado con la funcin im2bw. El umbral est normalizado en el rango [0,1]; si la imagen es uint8 hay que multiplicar al umbral por 255 antes de usarlo.

Otros mtodos: valor medio


Se usa el nivel medio de gris de la imagen como valor umbral. Esta umbralizacin tendr xito si el objeto y el fondo ocupan reas comparables en tamao en la imagen.

Mtodo del porcentaje de pixeles negros


Dado un histograma, y un porcentaje de
pxeles negros deseados, se determina el numero de pxeles negros multiplicando el porcentaje por el nmero total de pxeles. pxeles de cada nivel del histograma, empezando por el nivel cero, hasta llegar al nmero de pxeles negros deseados. en el que la cuenta llegue al nmero de pxeles negros deseados.

A continuacin se cuentan el nmero de

El umbral ser el nivel de gris del histograma,

Mtodo de los dos picos


oSi el histograma muestra al menos dos picos, el
valor umbral ms apropiado suele ser (segn se ve en la prctica) el menor valor entre esos dos picos del histograma.

oSeleccionar el umbral automticamente consiste


en:

o Encontrar los dos picos ms altos. o Encontrar el menor valor entre ellos.

Umbralizacin local

T depende de I(x,y) y de alguna propiedad local del pixel, ej. el nivel de gris medio de una vecindad del pixel.

1 si f ( x, y ) T ( x, y ) g ( x, y ) = 0 si f ( x, y ) < T ( x, y )

Ms adelante

Segmentacin basada en regiones


El objetivo de la segmentacin es dividir una imagen en regiones. Hasta ahora encontramos lmites entre regiones por discontinuidades en niveles de intensidad (tonos de grises) usando la distribucin de las intensidades de pixeles (umbral en histograma). Ahora intentaremos encontrar regiones directamente.

Principios bsicos

Si R representa a la imagen entera, podemos ver a la segmentacin como un proceso que particiona R en distintas subregiones R1, R2, R3.Rn. Tal que:

(a ) U Ri = R
i =1

(b) Ri es una regin conectada (c) Ri I R j = para todo i j (d ) P ( Ri ) = TRUE para i = 1,2,..., n (e) P ( Ri U R j ) = FALSE para cualesquiera regiones adyacentes

Condiciones
(a) La segmentacin tiene que ser completa. Cada pixel tiene que estar en una regin. (b) Los puntos tienen que estar conectados. (c) Las regiones tienen que ser disjuntas. (d) Propiedad que tienen que satisfacer los pixels de una regin. (e) Regiones adyacentes son diferentes en cuanto a (d).

Crecimiento de regiones
de la imagen en regiones mayores basndose en un criterio prefijado. Normalmente se empieza con unos puntos semillas para formar una determinada regin, aadiendo aquellos pxeles vecinos que cumplan la propiedad especificada (por ejemplo, que estn en un rango de nivel de gris determinado). debe tener en cuenta la informacin sobre conectividad o adyacencia de la imagen.

Es un procedimiento que agrupa los pxeles o subregiones

La propiedad considerada en el crecimiento de regiones

En Matlab

[g, NR, SI, TI]=regiongrow(f, S, T)

Donde f es la imagen a segmentar S puede ser un arreglo (del mismo tamao que f) un escalar. Si es un arreglo tiene 1s en los puntos que son semillas y 0s en otro lugar. Si es un escalar, define un valor de intensidad que todos los puntos de f con ese valor son semillas.

Seguimos.

T es un umbral, que puede ser un arreglo un escalar. Este umbral se utiliza para determinar la similitud de un pixel respecto de la semilla a la cual est 8-conectado. g es la imagen segmentada, cada pixel perteneciente a una regin est etiquetado con un nmero entero. NR es el nmero de regiones. SI puntos semilla (mismo tamao que f) TI puntos que satisfacen el test del umbral.

Ejemplo Puntos semilla: aqullos con valor 255. Criterios para aumentar una regin: (1) diferencia en valor absoluto con pxel semilla menor que 65; (2) 8-adyacencia con algn pxel de la regin.

Divisin y fusin
Se subdivide la imagen inicialmente en un conjunto de regiones disjuntas, dentro de las cuales, se volver a realizar una subdivisin o bien una fusin entre ellas, dependiendo de si se verifican las condiciones prefijadas. La estructura ms usada para la subdivisin es el rbol cuaternario. Los pasos a seguir son: Se define un test de homogeneidad Se subdivide la imagen en los cuatro cuadrantes disjuntos Se calcula la medida de homogeneidad para cada cuadrante Se fusionan dos regiones si la condicin de homogeneidad se verifica para la unin de las mismas. Si una regin no verifica la condicin, se vuelve a subdividir en sus cuatro cuadrantes y se repite el proceso hasta que todas las regiones pasan el test de homogeneidad.

1. 2. 3. 4. 5.

También podría gustarte