3.3 Procesamiento de imágenes
3.3.5 Procesamiento del color
3.3.5.7 Segmentación de imágenes a color
La segmentación de una imagen se define como la división de la misma en diferentes regiones con atributos similares, de tal manera que los datos de interés queden bien distinguidos de la información irrelevante. Dependiendo de qué atributo sea al que queramos dar importancia, obtendremos una forma de segmentación diferente en cada caso mediante la utilización de diferentes algoritmos, y se puede hacer tanto en el espacio RGB como en el espacio HSI.
La segmentación de imágenes es un proceso clave en el análisis y comprensión de una imagen, por lo tanto es un apartado muy importante que tiene las más diversas aplicaciones como ser la visión artificial, análisis médicos, etc.
Existen varias categorías en la segmentación: ● Segmentación basada en pixeles
● Segmentación basada en regiones ● Segmentación basada en bordes
● Segmentación híbrida basada en regiones o bordes ● Segmentación basada en agrupamiento, etc.
En este proyecto integrador se utilizó la segmentación basada en agrupamiento en el espacio RGB, y más específicamente el algoritmo de K-
92
means que se explica más adelante, pero antes se explicará brevemente en qué consiste la segmentación en el espacio HSI como en el RGB (35).
3.3.5.7.1 Segmentación en HSI
En este tipo de segmentación generalmente se utiliza la banda H para identificar los colores y la banda S como una máscara.
En la siguiente figura, para segmentar la región de interés roja de la imagen (a), se separa la imagen es sus componentes HSI. Luego se obtiene una máscara binaria a partir de la imagen de saturación con un umbral del 10% (ya que el rojo que interesa está en ese rango). La imagen (f) muestra el resultado de aplicar la máscara a la imagen H. La imagen (h) muestra el resultado de aplicar la máscara con un umbral del 9%. Esta última da una mejor aproximación de la región que se quiere obtener (35).
Fig. 3.3.36 Segmentación en el espacio HSI.
(a) Imagen original. (b) Componente H. (c) Componente S. (d) Componente I. (e) Binarización de (c). (f) Producto de (b) y (e) con umbral del 10%. (g) Histograma de (f). (h)
Producto de (b) y (e) con umbral del 9% (35).
3.3.5.7.2 Segmentación en el espacio vectorial RGB
La segmentación es una de las áreas donde el espacio RGB da mejores resultados. Suponiendo que se quiere segmentar un rango específico de un
93 color, podemos tomar una muestra y obtener el “promedio” de ese color. Se representará este color promedio por el vector a RGB.
El objetivo de la segmentación es clasificar cada píxel RGB en una imagen dada como parte del rango de color especificado o no. Es necesario entonces medir de alguna manera la similitud. Se puede utilizar la distancia euclidiana, dado un punto z del espacio RGB, decimos que
z es similar a a
si la distancia entre ellos es menor a un umbral especificado D0. La distancia euclidiana está dada por:Donde los subíndices R, G y B denotan los componentes de los vectores a y
z.
El volumen comprendido D (
z
,a
) <= D0 es una esfera sólida de radio D0(35).
Fig. 3.3.37 Segmentación 1
La esfera representa el rango de interés para determinar si un píxel pertenece a una clase o no (37).
Se puede trabajar con los cuadrados para evitar cálculo de raíces, sin embargo aun así es computacionalmente costoso para imágenes de tamaño práctico. Una buena aproximación es utilizar un cubo centrado en
a con
dimensiones a lo largo de cada eje de color, proporcionales a la desviación estándar de las muestras alrededor de cada eje (35).94
Fig. 3.3.38 Segmentación 2
El cubo representa el rango de interés para determinar si el valor de un píxel pertenece al rango en estudio. Este cubo es una aproximación al caso de la esfera y ofrece un costo
computacional menor (37).
El rectángulo de la figura 3.3.39 (a) contiene muestras de los colores rojizos que se desean segmentar. Se obtiene el vector
a a partir de la media de
estas muestras y después se calculan las desviaciones estándar de los valores rojo, verde y azul de estas muestras. Se centra un cubo en a y se le dan dimensiones correspondientes a un valor de 1.25 de la desviación estándar en cada eje (R, G, B) (37).(En la expresión anterior “dsr”, “dsg” y “dsb” son las desviaciones estándar de los valores rojo, verde y azul respectivamente).
De esta manera se puede obtener la imagen binaria que se muestra en la figura 3.3.39(b).
Fig. 3.3.39 Segmentación en el espacio RGB.
(a) El rectángulo es la muestra que se toma de la imagen original. (b) Binarización de la segmentación realizada (35).
95 Si lo comparamos con la segmentación realizada en el espacio HSI con la del espacio RGB, este último da una mejor aproximación.
Segmentación basada en agrupamiento (clustering)
Los algoritmos de segmentación basados en clustering tratan de dividir un conjunto de datos de entrada en subconjuntos (clústeres), de tal manera que los elementos de cada subconjunto compartan cierto patrón. El agrupamiento se hace conforme a algún criterio, generalmente por distancia o por similitud.
Estos tipos de algoritmos no son supervisados, es decir, no requieren el conocimiento previo de aquellos objetos que se van a segmentar. Se requieren ciertas características previas en base a lo que se desea realizar. Estos algoritmos, resultan muy convenientes en aquellos ámbitos de aplicación en los que a priori, no se tiene mucha información, como en el caso de imágenes médicas o en el caso de segmentación de objetos sobre un fondo.
Las técnicas para agrupar datos son principalmente dos:
1. Agrupamiento jerárquico: Contempla la aglomeración y división de clústeres.
2. Agrupamiento no jerárquico: El número de clústeres se fija al inicio, y los criterios usados son respecto a las distancias (38).
En este proyecto nos centraremos específicamente en el segundo de ellos, y específicamente analizaremos el algoritmo K-means.