You are on page 1of 14

LABORATORIO NO 2.

SEGMENTACIN DE IMGENES POR NIVELES DE GRISES Y ETIQUETADO DE IMGENES BINARIAS

FACULTAD DE CIENCIAS BSICAS E INGENIERA VISIN ARTIFICIAL OCTUBRE 11 DE 2009

INTRODUCCIN

El problema general de la segmentacin de imgenes consiste en localizar los diferentes objetos que estn presentes en una imagen. En un sistema de visin artificial genrico, la fase de segmentacin se encuadra entre las fases de preprocesamiento, en la que las imgenes son sometidas a diferentes operaciones de filtrado que ayuden a mejorar la calidad de la imagen o a destacar los objetos que posteriormente queremos segmentar, y la de identificacin o reconocimiento de los objetos, que es en la fase en la que se reconocen y etiquetan los distintos objetos de la imagen. La tcnica utilizada en este laboratorio de visin artificial es la segmentacin de una imagen por niveles de grises, consiste en la divisin de la imagen en regiones con caractersticas similares. Cada una de las regiones de inters (que comparten ciertas propiedades) se denomina objeto. El resultado obtenido de la segmentacin es la separacin de objetos que hay dentro de la imagen.

MARCO TEORICO

La segmentacin de una imagen implica la deteccin, mediante procedimientos de etiquetado deterministas o estocsticos, de los contornos o regiones de la imagen, basndose en la informacin de intensidad o/y la informacin espacial. Existen diferentes mtodos de segmentacin que pueden utilizarse y cada tipo o familia normalmente se asocia a un tipo de problema a resolver. En este caso aplicamos mtodos de segmentacin con los que se obtienen muy buenos resultados. Antes de segmentar es preciso definir qu objetos interesa determinar, tras la segmentacin es posible realizar operaciones de filtrado (a nivel de objetos), as como determinar caractersticas que permitan clasificar los objetos. Una buena segmentacin es difcil de evaluar. Fundamentalmente, lo que se busca es que diferentes objetos tengan valores claramente diferentes de la(s) caracterstica(s) discriminante(s). SEGMENTACIN BASADA EN CARACTERSTICAS

SEGMENTACIN POR NIVELES DE GRIS Utiliza como caracterstica solamente la luminancia de cada pxel. til si distintos objetos se corresponden con niveles de gris diferentes. El nivel de gris determina alguna propiedad fsica en una imgen especfica de una aplicacin (Rayos X, RMN, bandas en satlite, etc) Tcnicas de operaciones puntuales (ej: doble umbralizacin) Tcnicas de clasificacin basada en amplitud ->imagen binaria

Matlab utiliza esta funcin para realizar este tipo de segmentacin Matlab: J=roicolor(I,low, high); J es una imagen binaria En el caso ideal en que el objeto posea un rango estrecho de niveles de gris frente a un fondo uniforme, podemos establecer un nivel de gris intermedio (umbral) para separar objeto y fondo.Para separar por umbral, es til recurrir al histograma.

Umbralizacin: Mtodo automtico para separar objeto del fondo: Otsu Clculo del histograma de grisClculo iterativo de media y varianza Hiptesis de umbral U divide el histograma en dos partes y se calcula media y varianza para cada parte iterativamente cambiando U. MATLAB utiliza la siguiente funcin para realizar la umbralizacion de una imagen: Matlab: level= graythresh(I); %utilizael mtodo de OtsuBW=im2bw(I,level) La determinacin del umbral ptimo para una imagen dada es un factor crtico de la segmentacin.

ETIQUETADO DE UNA IMAGEN BINARIA La Etiqueta: Es el nmero que identifica a cada pxel, indicando a qu objeto pertenece. Suponiendo dos niveles: Nivel 1 (primer plano) Nivel 0 (fondo) El etiquetado consiste en identificar grupos conexos de pxeles de primer plano, asignndole a cada uno de ellos una etiqueta diferente. Matlab: L=bwlabel(I,N); N= 4 8 El algoritmo de etiquetacin recibe como entrada correspondiente a los objetos a identificar cada uno de los pxeles de la imagen, en donde cada etiqueta identifica el objeto al cual dicho pixel pertenece.

Fig. 1. Proceso de etiquetacin, entradas y salidas del algoritmo

Podemos observar un diagrama que representa imagen binarizada donde el valor de PIXEL_NO_ACTIVO. La salida es una matriz de etiquetas que identifica pixel. La entrada ser una imagen binaria con mltiples regiones y la salida una imagen etiquetada (se representar en una imagen de nivel de gris procurando que los valores estn lo suficientemente separados para una correcta visualizacin).

LABORATORIO NO 2. SEGMENTACIN DE IMGENES POR NIVELES DE GRISES Y ETIQUETADO DE IMGENES BINARIAS

Objetivos: Realizar etiquetado y segmentacin de imgenes utilizando funciones de MATLAB. Comprender el proceso de segmentacin y etiquetado de una imagen binaria para separar objetos individualmente del fondo.

REALIZACIN DE LA PRCTICA DE LABORATORIO Segmentacin y etiquetado para imagen de un solo color: 1. Se elaboro una imagen .bmp para realizar la prctica de segmentacin a travs de MATLAB. 2. A travs de una funcin creada en MATLAB se extrajo individualmente el cuadro de composicin y la imagen deseada. 3. En la ventana de comandos de MATLAB se ingres los siguiente: >> I=imread(1.bmp');%se cargo la imagen a utilizar% >> figure,imshow(I);

Imagen A. imagen original a segmentar.

>> Y=rgb2gray(I); % se transformo la imagen de RGB a escala de grises% >> figure,imshow(Y);

>> impixelinfo %muestra la informacin de los pxeles coordenadas x e y del pixel y su valor%

Imagen B. imagen aplicndole escala de grises.

>>Bw=im2bw(Y,75/255);%binarizacion de la imagen% >> figure,imshow(Bw); >> impixelinfo

Imagen C. imagen despus de la binarizacion

L=bwlabel(Bw,8);%se etiquetan las figures, asi no todas qeudan con el mismo valor de pixel% >> figure,imshow(L) >> impixelinfo; >> rect=roicolor(L,1,1); % extrae el circulo% >> figure,imshow(rect)

Imagen D. imagen del rectngulo triangulo=roicolor(L,2,2); % extrae el triangulo % >> figure,imshow(triangulo)

Imagen E. imagen del triangulo

circulo=roicolor(L,3,3); % extrae el rectngulo % figure,imshow(circulo)

Imagen F. imagen del circulo figura=recorrer(cir,1); Hace el llamado a la funcion recorrer tomando como parametros la imaginen segmentada y como el objeto toma valores de 1 y el fondo es cero port al motive es que el Segundo parametro es el numero 1.

Imagen G. imagen del circulo

>> figura=recorrer(rec,1);

Imagen H. imagen del rectngulo

>> figura=recorrer(triangulo,1);

Imagen I. imagen del triangulo NOTA: adjunto en imagen 1 comandos de MATLAB.doc podr copiar los comandos dentro de la ventana de MATLAB para ver los resultados obtenidos en este laboratorio. Segmentacin y etiquetado para imagen de varios colores: 1. Se elaboro una imagen .bmp para realizar la prctica de segmentacin a travs de MATLAB. 2. A travs de una funcin creada en MATLAB se extrajo individualmente el cuadro de composicin y la imagen deseada. 3. En la ventana de comandos de MATLAB se ingres los siguiente:

>> I=imread('2.bmp');%se cargo la imagen a utilizar% >> figure,imshow(I);

Y=rgb2gray(I); % se transformo la imagen de RGB a escala de grises% figure,imshow(Y); impixelinfo %muestra la informacin de los pxeles coordenadas x e y del pixel ysu valor%

>> cir=roicolor( Y,76,76); >> figure,imshow(cir);

>> rect=roicolor( Y,150,150); >> figure,imshow(rect);

>> tria=roicolor( Y,179,179); >> figure,imshow(tria);

>> figura=recorrer(cir,1);

>> figura=recorrer(rect,1); >> figura=recorrer(tria,1); NOTA: adjunto en imagen 2 comandos de MATLAB.doc podr copiar los comandos dentro de la ventana de MATLAB para ver los resultados obtenidos en este laboratorio.

Funcin creada en MATLAB para recortar la imagen y sustraer el elemento deseado:


function J=recorrer(ime,opc) [f c]=size(ime); der=c; izq=1; sup=f; inf=1; for y=1:f; for x=1:c; if ime(y,x)==opc %se recorre la imagen en busca de %cada pixel que este ms arriba, %el ms abajo, el mas a la %izquierda y el mas a la %derecha.del objeto...... %

if der>x der=x; end if izq<x izq=x; end if sup>y sup=y; end if inf<y inf=y; end end end

end %se crea un na imagen o matriz con las dimensiones del objeto obtenidas anteriormente.... xx=inf-sup; yy=der-izq; J=zeros(yy,xx); x1=1; y1=1; for y=sup:inf for x=der:izq J(y1,x1)=ime(y,x); %se recore solo el objeto contenido en la imagen y se pasa a la imagen nueva.. quedando contenido solo el objeto deseado.. x1=x1+1; end x1=1; y1=y1+1; end figure,imshow(J); %se mustra la imagen resultado... end

CONCLUSIONES

Si analizamos los resultados obtenidos se puede mencionar que el algoritmo de segmentacin basado en etiquetacin de pxeles propuesto resulta muy efectivo en condiciones en las cuales sabemos que los objetos a segmentar no estn juntos en la escena. El algoritmo propuesto se basa en el hecho de que los objetos a identificar en la imagen no estn juntos tal y como sucede en los dos primeros experimentos que hemos realizado. En el tercer experimento podemos observar claramente la deficiencia de nuestro algoritmo.

WEBGRAFIA

1. 2. 3. 4.

http://www.microbotica.es/h1/doku.php?id=vision:segmentacion http://cmm.ensmp.fr/~angulo/publicat/AnguloSerra_CyS_05.pdf http://www.gts.tsc.uvigo.es/pi/Analisis%20de%20imagenes.pdf http://translate.google.com.co/translate?hl=es&sl=en&u=http://www.math works.com/access/helpdesk/help/toolbox/images/impixelinfo.html&ei=Xf3 RStbUNNyutgedxKz6Aw&sa=X&oi=translate&resnum=1&ct=result&ved= 0CAwQ7gEwAA&prev=/search%3Fq%3Dimpixelinfo%2Bmatlab%26hl% 3Des%26rlz%3D1C1GGLS_esCO338CO338 5. http://blog.espol.edu.ec/gluzardo/files/2009/04/merge_labeling.pdf

You might also like