Shorten links

jueves, 27 de diciembre de 2012

Guardar un video como .avi en Matlab

La parte difícil de procesar un video avi no es leerlo, sino escribir el resultado, puede haber dos errores posibles, de mapa de color ( colormap ) o de número de argumentos al cerrar su archivo en la función avifile.close.
presuponemos que ya leyeron y tal vez procesaron un video con algo como:
xyloObj = mmreader('MI VIDEO A PROCESAR.AVI');

nFrames = xyloObj.NumberOfFrames; %numero de cuadros
%
aviobj = avifile('elnombredemiarchivo.avi','compression','None');

for k = 1 : nFrames
    aviobj = addframe(aviobj,im2frame(mov(k).cdata, bone(256) ));
end
 aviobj = close(aviobj);

y listo!
bone(256) es el mapa de color para radiografías, tiene que ser a 256 por lo general a menos que hagan imágenes en cuyo caso ponel el nombre sin el 256.
mov(k).cdata es una imágen o un cuadro de nuestro video en este caso obtenida con
image = read(xyloObj, k);

PD: si no le entendiste nada puedes preguntar en los comentarios
si no entiendes bien lo de mov(k).cdata deberías buscar en la ayuda de tu matlab la función mmreader
si a pesar de todo ello no le entendiste o no quieres ayuda sino un ejemplo pídelo en
mi otro blog