Segmentacion De una Imagen a Color
-
Upload
oscar-leonardo-mosquera-dussan -
Category
Documents
-
view
2.273 -
download
7
description
Transcript of 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
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.
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
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.
RESULTADOS
La imagen original es la siguiente:
Las 15 muestras representativas tomadas del objeto deseado.
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:
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.