segmentacion de una imagen a color
DESCRIPTION
Segmentar un objeto deseado de una imagen a color utilizando el software Matlab.TRANSCRIPT
![Page 1: Segmentacion De una Imagen a Color](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/1.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/2.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/3.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/4.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/5.jpg)
RESULTADOS
La imagen original es la siguiente:
Las 15 muestras representativas tomadas del objeto deseado.
![Page 6: Segmentacion De una Imagen a Color](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/6.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022082605/5571f7e649795991698c3b2d/html5/thumbnails/7.jpg)
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.