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:4string = ['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
%%%%%%%%%%%%%%%%%%%%%%%
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=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:
Publicar un comentario