Diferencia entre revisiones de «Cosas temporales para cursos»
De Grupo de Inteligencia Computacional (GIC)
Sin resumen de edición |
Sin resumen de edición |
||
Línea 59: | Línea 59: | ||
end | end | ||
cd .. | cd .. | ||
********************************** | |||
function [aciertos, error_acum]=calculo_error_LOO(m) | |||
m=double(m); | |||
[filas,cols,nsujetos,nimagenes]=size(m) | |||
error_acum=0; | |||
aciertos=0; | |||
for i=1:40 | |||
i | |||
for j=1:10 | |||
test=squeeze(m(:,:,i,j)); | |||
distancias=zeros(nsujetos,nimagenes); | |||
for k=1:nsujetos | |||
for l=1:nimagenes | |||
distancias(k,l)=norm(test-m(:,:,k,l)); | |||
end | |||
end | |||
distancias(distancias==0)=inf; | |||
[mincols rowinds]=min(distancias); | |||
[minglobal colind]=min(mincols); | |||
clase=rowinds(colind); | |||
if clase==i | |||
aciertos=aciertos+1; | |||
else | |||
error_acum=error_acum+1; | |||
end | |||
end | |||
end |
Revisión del 09:44 3 oct 2011
algunos codigos matlab para vision por computador
function modelo=construir_modelo(nimagen) cd orlfaces d=dir; modelo=zeros(112,92,size(d,1)-2); for i=3:size(d,1);
cd (d(i).name) ds=dir; modelo(:,:,i-2)=imread(ds(nimagen+2).name); cd ..
end cd ..
function modelo=construir_modelo_LOO cd orlfaces d=dir; modelo=zeros(112,92,size(d,1)-2,10); for i=3:size(d,1);
cd (d(i).name) ds=dir; for j=3:size(ds,1) modelo(:,:,i-2,j-2)=imread(ds(j).name); end cd ..
end cd ..
function [error_acumulado, matriz_confusion]=calcular_error_test(modelo,nimagen)
cd orlfaces d=dir; nclases=size(d,1)-2; distancia=zeros(nclases,1); matriz_confusion=zeros(nclases); error_acumulado=0; for i=3:size(d,1);
cd(d(i).name) ds=dir; for j=3:size(ds,1) if j ~= nimagen + 2 y=double(imread(ds(j).name)); for k=1:size(d,1)-2 distancia(k)=sum(sum(abs(modelo(:,:,k)-y))); end
%
[dmin, clase]=min(distancia); matriz_confusion(i-2,clase)=matriz_confusion(i-2,clase)+1; error= (i-2) ~=clase; error_acumulado= error_acumulado + error; end end cd ..
end
cd ..
function [aciertos, error_acum]=calculo_error_LOO(m) m=double(m); [filas,cols,nsujetos,nimagenes]=size(m) error_acum=0; aciertos=0; for i=1:40
i for j=1:10 test=squeeze(m(:,:,i,j)); distancias=zeros(nsujetos,nimagenes); for k=1:nsujetos for l=1:nimagenes distancias(k,l)=norm(test-m(:,:,k,l)); end end distancias(distancias==0)=inf; [mincols rowinds]=min(distancias); [minglobal colind]=min(mincols); clase=rowinds(colind); if clase==i aciertos=aciertos+1; else error_acum=error_acum+1; end end
end