Академический Документы
Профессиональный Документы
Культура Документы
Reconocedor de Piel
Flores Cortes Luis ngel
Gonzlez Arvizu Ezequiel
Viveros Arenas Jerzy Samuel
2014640083
2014640106
2014640294
Reconocimiento de Patrones
4BM1
Marco Terico
Los modelos RGB, CMY y YIQ estn orientados al hardware. En cambio, el
modelo HSV (hue, saturacin, value; tinte, saturacin, valor) est orientado al
usuario y se basa en el atractivo intuitivo del modelo de los artistas. HSV es un
sistema de color que vara el grado de propiedades del color para crear nuevos
colores (utiliza la mezcla de colores). Hue (matiz) especifica el "color", rojo,
naranja, azul, etc. La saturacin (conocida tambin como cromo o pureza), se
refiere a la cantidad de blanco en un hue. Un color completamente saturado no
contiene blanco y aparece puro, un rojo 50% saturado resulta un rosa.
El valor (conocido tambin como brillo) es el grado de luminosidad de un color
(que tanta luz emite). Un matiz con alta intensidad es brilloso, uno con poca
intensidad es oscuro.
El tinte, o H(hue), se mide con el ngulo alrededor del eje vertical, con el
rojo en 0 y el verde en 120, etctera. En el modelo HSV los colores
complementarios estn opuestos 180 entre s. El valor de S es una razn que
vara de 0 en la lnea central (eje V) a 1 en los lados del cono. La saturacin se
mide con respecto a la gama de colores representada por el modelo, la cual, por
supuesto, constituye un subconjunto de todo el diagrama de cromaticidad CIE. Por
lo tanto, una saturacin del 100 por ciento en el modelo es menor que el 100 por
ciento de pureza de excitacin.
Desarrollo
La prctica se dividi en dos secciones, una de entrenamiento y otra de muestra
de ella, en la seccin de entrenamiento de la piel donde a la imagen se le recorta y
despus se hace un imcrop seleccionando la seccin de la piel en formato hsv,
despus se guardan la H, S y V respectivamente para hacer un clasificador
Bayesiano. Lo primero es buscar sus promedios y guardarlos en una matriz y a
travs de un ciclo for se calcula la covarianza y se muestra en cov1, finalmente f1
es la funcin discriminante de la clase piel. Este proceso se repite para detectar el
fondo y el cabello.
Img=(imread('1.JPG'));
Img=imresize(Img,[480,640]);
%Entrenamiento:
%Piel
phsv=imcrop(rgb2hsv(Img));
H=phsv(:,:,1);
S=phsv(:,:,2);
V=phsv(:,:,3);
Hprom=mean(H);
Sprom=mean(S);
c1=[Hprom;Sprom];
mc1=mean(c1,2);
M=length(c1);
for i=1:M
x=c1(:,i);
r(:,:,i)=x*x';
xj=sum(r,3);
end
cov1=((1/M).*(xj))-(mc1*mc1');
syms x1 x2
f1=([x1 x2]*cov1^-1*mc1)-(0.5.*mc1'*cov1^-1*mc1)
%Fondo
fhsv=imcrop(rgb2hsv(Img));
Hf=fhsv(:,:,1);
Sf=fhsv(:,:,2);
Vf=fhsv(:,:,3);
Hpromf=mean(Hf);
Spromf=mean(Sf);
c2=[Hpromf;Spromf];
mc2=mean(c2,2);
M2=length(c2);
for i=1:M2
x2=c2(:,i);
r2(:,:,i)=x2*x2';
xj2=sum(r2,3);
end
cov2=((1/M2).*(xj2))-(mc2*mc2');
syms x1 x2
f2=([x1 x2]*cov2^-1*mc2)-(0.5.*mc2'*cov2^-1*mc2)
%Cabello
chsv=imcrop(rgb2hsv(Img));
Hc=chsv(:,:,1);
Sc=chsv(:,:,2);
Vc=chsv(:,:,3);
Hpromc=mean(Hc);
Spromc=mean(Sc);
c3=[Hpromc;Spromc];
mc3=mean(c3,2);
M3=length(c3);
for i=1:M3
x3=c3(:,i);
r3(:,:,i)=x3*x3';
xj3=sum(r3,3);
end
cov3=((1/M3).*(xj3))-(mc3*mc3');
syms x1 x2
f3=([x1 x2]*cov3^-1*mc3)-(0.5.*mc3'*cov3^-1*mc3)
En la imagen
se aprecia el
imcrop con el
formato HSV
en donde se
selecciona la
piel.
Ahora
se
selecciona el
fondo
para
que
el
programa
reconozca qu
no pertenece
al parmetro
de piel.
Por ltimo, el
cabello
es
seleccionado
de igual forma
para que se
distinga de la
piel.
for i=1:480
for j=1:640
x1=Ihsv(i,j,1);;
x2=Ihsv(i,j,2);
fd1=(58548945052283691103670647497911*x1)/4951760157141521099596496896 +
(23094983292420928424503065495643*x2)/39614081257132168796771975168 495792632602055/1099511627776;
fd2=(115715711932735866720361616475351*x1)/79228162514264337593543950336
- (106918922944752214482367620431695*x2)/39614081257132168796771975168 2907686038758573/8796093022208;
fd3=(78792349202983649177984861458351*x1)/9903520314283042199192993792 +
(81067436143030176105805078074653*x2)/39614081257132168796771975168 6809816773700455/17592186044416;
if fd1>fd2 && fd1>fd3
np(i,j)=255;
end
if fd2>fd3 && fd2>fd1
np(i,j)=0;
end
if fd3>fd1 && fd3>fd2
np(i,j)=0;
end
end
end
figure
imshow(np)
Resultados
Este es el resultado del programa, se puede apreciar que reconoce en la mayoria
de la imagen es la piel, a continuacion se muestran ms imgenes del
reconocimiento de la piel.
Conclusiones
Ezequiel Gonzalez Arvizu:
Bibliografia
http://www.it.uc3m.es/jvillena/irc/practicas/09-10/05mem.pdf