Segmentacion De una Imagen a Color

7
SEGMENTACION DE IMAGEN A COLOR CON DISTANCIA EUCLIDIANA Y MAXIMOS Y MINIMOS OSCAR LEONARDO MOSQUERA DUSSAN COD.2005100830 PRESENTADO AL INGENIERO: JOSE SALGADO PATRON UNIVERSIDAD SURCOLOMBIANA FACULTAD DE INGENIERIA INGENIERIA ELECTRONICA AUTOMATIZACION II NEIVA-HUILA 2010

description

Segmentar un objeto deseado de una imagen a color utilizando el software Matlab.

Transcript of Segmentacion De una Imagen a Color

Page 1: Segmentacion De una Imagen a Color

SEGMENTACION DE IMAGEN A COLOR CON DISTANCIA EUCLIDIANA Y MAXIMOS Y MINIMOS

OSCAR LEONARDO MOSQUERA DUSSANCOD.2005100830

PRESENTADO AL INGENIERO:

JOSE SALGADO PATRON

UNIVERSIDAD SURCOLOMBIANAFACULTAD DE INGENIERIAINGENIERIA ELECTRONICA

AUTOMATIZACION IINEIVA-HUILA

2010

Page 2: Segmentacion De una Imagen a Color

OBJETIVOS

● Aplicar los conceptos aprendidos en clase sobre imágenes a color y técnicas de segmentación.

● Aplicar los métodos de “distancia euclidiana” y “máximos y mínimos” para segmentar un objeto especifico de una imagen a color.

● Practicar en la Herramienta Matlab los conocimientos adquiridos en clase.

Page 3: Segmentacion De una Imagen a Color

PROCEDIMIENTO

En el software Matlab se implemento el respectivo código para llevar a cabo la segmentación de un objeto perteneciente a una imagen a color. Código: %adquirimos imagenIM=imread('tws.jpg');figure;subplot(2,2,1);imshow(IM);title('Original');[nf nc c]=size(IM);

%Tomamos 15 muestras representativas :ROI=[];for f=1:15 [x y]=ginput(1); x=round(x); y=round(y); color=[IM(y,x,1) IM(y,x,2) IM(y,x,3)]; ROI=[ROI; color];end;ROI=double(ROI);mapROI=ROI/255;R=1:15;R=[R;R;R;R;R;R;R;R;R;R;R;R;R;R;R];subplot(2,2,3);imshow(R,mapROI);title('Muestras Representativas');

%Aplicamso Distancia euclidiana , usando la funcion Deucl, cuyos argumentos son los %componentes de la media y los componentes del pixel de la imagen que vamos recorriendo :rgbmedio=[mean(ROI(:,1)); mean(ROI(:,2)); mean(ROI(:,3))];IM2=IM;for f=1:nf for c=1:nc z=[IM(f,c,1); IM(f,c,2); IM(f,c,3)]; d2=Deucl(z,rgbmedio); if d2>0.18%quiere decir que el pixel no pertenece al objeto (muestras) IM2(f,c,:)=[0 0 0]; else IM2(f,c,:)=[255 255 255];%si la distancia es menor, quiere decir que el pixelsi pertenece %IM2(f,c,:)=IM(f,c,:); %no comentar esta linea si se desa obtener el objeto segmentado en

%color original y no blanco end; end;end;subplot(2,2,2);imshow(IM2);title('Filtro con distancia');

%Aplicamos min maxrgbmax=[max(ROI(:,1)); max(ROI(:,2)); max(ROI(:,3))];%valores maximos de las muestras

%tomadas para cada plano R-G-B

Page 4: Segmentacion De una Imagen a Color

rgbmin=[min(ROI(:,1)); min(ROI(:,2)); min(ROI(:,3))];%valores minimos de las muestras %tomadas para cada plano R-G-B

IM3=IM;%Recorremos la imagen for f=1:nf for c=1:nc %Si el pixel que recorremos se encuentra en el rango de maximos y minimos de cada plano % RGB, pertenece al objeto y ponemos cada componente en 255 para resaltar el objeto en

%blanco if(rgbmin(1,1)<IM(f,c,1) & IM(f,c,1)<rgbmax(1,1) & rgbmin(2,1)<IM(f,c,2) & IM(f,c,2)<rgbmax(2,1) & rgbmin(3,1)<IM(f,c,3) & IM(f,c,3)<rgbmax(3,1)) IM3(f,c,:)=[255 255 255]; %SI esta fuera de rango, el pixel se pone a 0 (cada plano RGB), de tal forma que se vea

%negro.else

IM3(f,c,:)=[0 0 0]; end; end;end;subplot(2,2,4);imshow(IM3);title('Filtro con Max-Min');

El codigo de la funcion Deucl que calcula la distancia euclidiana es el siguiente:

function d2=Deucl(z,a)z=double(z)./255;%convertimos a double para las operaciones necesarias.a=double(a)./255;a1=(z(1,1)-a(1,1))^2;a2=(z(2,1)-a(2,1))^2;a3=(z(3,1)-a(3,1))^2;d2=sqrt(a1+a2+a3);%aplicando Distancia euclidiana.

Page 5: Segmentacion De una Imagen a Color

RESULTADOS

La imagen original es la siguiente:

Las 15 muestras representativas tomadas del objeto deseado.

Page 6: Segmentacion De una Imagen a Color

Segmentación del objeto aplicando el método de Máximos y Mínimos:

Segmentación del objeto aplicando el método de Distancia Euclidiana:

Page 7: Segmentacion De una Imagen a Color

CONCLUCIONES

● Para lograr una óptima segmentación en una imagen a color , es recomendable tomar un numero considerable de muestras representativas; entre mas muestras representativas mejores resultados obtendremos.

● En los resultados logramos una mejor segmentación del objeto con el método de la Distancia Euclidiana. Debido a que con este método se tiene una mayor flexibilidad, modificando levemente la distancia umbral para determinar la pertenencia del píxel al objeto deseado.

● Ambos métodos desarrollados en la practica permiten llevar a cabo la segmentación de una imagen a color, el uso exclusivo depende de la imagen y de las situaciones, en nuestro caso logramos mejores resultados con el método de la Distancia Euclidiana.