viernes, 12 de diciembre de 2008

Alternativa 1: Momentos hu

Momentos hu:


Utilizando los momentos de hu se hizo una caracterizacion de las imagenes para tres comandos. El script utilizado fue descargado de la pagina http://dmery.ing.puc.cl/dmery/dmery/docencia/patrones/matlab/MomentosHu.zip.



El programa utilizado para hacer el analisis de los momentos de hu consiste de un procesamiento inicial de la imagen tal como se mostro en entradas anterioes del blog.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all;


Matriz para almacenar los momentos de las 12 imagenes, es decir, 4 imagenes por comando.

Z = zeros(12,8);

Abre cada una de las imagenes.

for i=1:4
string = ['F:\Cder1\bien\der\' num2str(i) '.jpg'];

Procesamiento.
Ima=imread(string);
I=rgb2gray(Ima);
%figure(i), imshow(I);
%%
%K = imadjust(I,[0.5 1],[]);
K = imadjust(I);
%K =medfilt2(I,[3 3]);
%figure, imshow(K);
%%
JU = im2bw(K,0.55);
%level = graythresh(K);
%JU = im2bw(K,level);
%figure, imshow(JU)
%%
se = strel('disk',9);
bw2 = imclose(JU,se);
bw3 = imopen(bw2,se);
figure, imshow(bw3)
%imshow(R);
Cálculo de los momentos de Hu.

HM = HuMom(bw3);
Z(i,:) = [HM 1];
Z
end

Los resultados se despliegna en una grafica de dos dimensiones x-y, donde en cada eje se grafica un momento. Analizando cual par (Momento x,Momento y) es el mas adecuado, para hacer la clasificacion de los comandos en el espacio 2-dimensional.

%%%%%%%%%%%%%%%%%%%%%%%
k1 = find(Z(:,8)==1);
k2 = find(Z(:,8)==2);
k3 = find(Z(:,8)==3);
figure(3)
%x=2;y=4 da buenos resultados
while(1)
x = input('Momento de Hu eje x?')
y = input('Momento de Hu eje y?')
clf
plot(Z(k1,x),Z(k1,y),'r*')
hold on
plot(Z(k2,x),Z(k2,y),'g+')
plot(Z(k3,x),Z(k3,y),'bo')
end



Tomando x=3; y=3. Los resultados se muestran en la figura, dond epuede verse una distribuciòn que facilita la clasificación de los comandos:






Tomando x=5,y=5, los resultados se muestran en la figura inferior, Aqui la distribucion de los momentos complica la clasificacion, por tanto ha de ser desechada:



El paso siguiente al analisis, es el entrenamiento de una red neuronal.

No hay comentarios: