19/11/07

Primeros pasos con OpenCV (6)

16 y 17 de Noviembre.

Pese a modificar la forma de ir leyendo las imágenes el proceso sigue siendo mucho más lento que con un vídeo, por lo que me he decidido convertir las secuencias de imágenes en vídeos para trabajar con ellos de una forma más cómoda.

En un primer momento cree un programa utilizando la propia libreria OpenCV con este fin, pero los resultados no fueron los esperados, ya que el programa creaba un archivo con extensión avi pero con 0 bytes. El código básicamente hace lo siguiente:

writer=cvCreateVideoWriter( opciones);

for i=1 to numImagenes {
img=cvLoadImage(ruta);
cvWriteFrame(writer,img);
cvReleaseImage(&img);
}
cvReleaseVideoWriter(&writer);

No se porque no funciona, pero tras horas de intentarlo al final he utilizado un programa llamado VirtualDub que tiene licencia GNU y puede descargarse de www.virtualdub.org y finalmente he convertido las secuencias de imágenes en vídeos con facilidad.

Tras esto he probado los vídeos con mi código y he comprobado que funcionan bien y a una velocidad correcta.

También he aprovechado estos vídeos para probar el programa de ejemplo de actualización de fondos (background) y he obtenido unos resultados bastante interesantes que me pueden servir en el proyecto, pero la velocidad del algoritmo es bastante lenta y los vídeos no se muestran a una velocidad normal. Tengo que probar si esto se debe al resto de cosas que hace el programa o a la actualización de fondo en si.