miércoles, 11 de febrero de 2009

Procesamiento de video

Ahora se presenta el procesamiento de un video leído desde archivo utilizando comandos de MATLAB se recurrienron a funciones para trabajar con archivos de video del toolbox que se expliacaran a continuación:

El archivo lo pudes descargar Aqui.

avi = aviread('Video_Complet_iLook\vid4.avi');

video = {avi.cdata};

aviread se encarga de cargar el la variable avi desde un archivo de video, dado que el video conserva su audio se separa solamente los datos con avi.data.

for a = 1:length(video)

imagesc(video{a});

axis image off

drawnow;

end;

esta es la forma de desplegar el video en una ventana le grafiza cada uno de los frames, realizando un recorrido del tamaño del video.

nFrames = size(pixels,4);

for f = 1:nFrames

pixel(:,:,f) = (rgb2gray(pixels(:,:,:,f)));

end

Conversion del color del video, es mapeado por intensidad .

for l = 1:2:nFrames

im = pixel(:,:,l);

%I2 = imfilter(im,h);

im2= imadjust(im);

im = im2bw(im2,0.29);

im2 = imclose(im,se);

im = imopen(im2,se);

[Label,n] = bwlabel(im,4);

graindata = regionprops(Label,'BoundingBox', 'Area');

Areas = [graindata.Area];

minimox = max(Areas);

[r,c] = find(Areas == minimox);

Bounding = graindata(c).BoundingBox;

% Calculo de los momento de Hu

HM = HuMom(Label == c);

%Clasificador

A = dataset([HM(1,x) HM(1,y)],10);

LABELS = labeld(A,W2);

imshow(pixel(:,:,l))

hold on;

rectangle('position',Bounding,'edgecolor','r');

message = sprintf('CMD = %i', LABELS);

text(15,230,message,'Color','y','FontWeight','bold');

drawnow;

clear im im2 Label graindata n Areas minimox r c Bounding HM A LABELS

end

Procesamiento de cada uno de los frames, las funciones utilizadas ya se describieron el publicaciones anteriores.

No hay comentarios: