Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Captura de video au...
 
Avisos
Vaciar todo

Captura de video automatizada

43 Respuestas
5 Usuarios
0 Reactions
18.2 K Visitas
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 18 años

Para alimentar a mi algoritmo de IA me gustaría meterle peliculas y hacer una captura por segundo y pasarle al algoritmo las imágenes "para que aprenda como es el mundo".
El caso es que quisiera hacerlo automatizadamente desde una consola C++, en el que el mi programa sea el master.
¿que software puedo usar? he intentado alguno y se me ha metido un troyano con lo cual he quedado un poco escarmentado.

Responder
42 respuestas
luisj
Respuestas: 235
(@luisj)
Estimable Member
Registrado: hace 18 años

Lo de que fuese a propósito lo decía de broma. 🙂

Muchas gracias, luego los imprimo y en cuanto tenga un rato los leo.

Responder
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 18 años

¿Se puede usar las Qt para captura automatizada de video? es que me gustaría poderlo hacer bajo Qt pues así puedo emplear threads y multicores. Imagino habría que integrar openCV en Qt ??

Responder
luisj
Respuestas: 235
(@luisj)
Estimable Member
Registrado: hace 18 años

Para capturar video en GNU/Linux hay que usar Video4Linux2, que es un poco coñazo. OpenCV lo puede hacer por ti, tiene una clase para hacerlo muy fácilmente. Te pego una especie de programilla que resume cómo se hace, sólo tendrías que especificar los paths de las librerías OpenCV:

#include <stdio>

#include "cv.h"

int main(int argc, char** argv) {
IplImage *image = 0;
CvCapture *capture = 0;

if (!(capture = cvCaptureFromCAM("/dev/video0"))) {
printf("Error al abrir la cámara.n");
return -1;
}

bool ok = true;
while (ok) {
// Esto es un bucle dentro del cual se captura,
// lo que hay dentro lo incorporarías a tu código.
if (!(image = cvQueryFrame(capture))) {
printf("Error leyendo.");
ok = false;
break;
}

// En este punto tienes los datos de la imagen en image:
// image->imageData: Puntero a los bytes
// image->width: Ancho
// image->height: Alto
}

cvReleaseCapture(&capture);
return 0;
}

Qt aquí serviría para mostrar la imagen en pantalla.

Responder
luisj
Respuestas: 235
(@luisj)
Estimable Member
Registrado: hace 18 años

Por cierto, ¿qué tal vas con Qt? Qt tiene soporte para imágenes en blanco y negro, y para imágenes en formato RGBA, que son los más típicos en imágenes. Sin embargo, para RGB, que es muy típico en visión no tiene soporte directo y hay que usar una pequeña clase que hemos hecho en RoboComp.

Para usarla no es necesario usar RoboComp, simplemente la clase. El .h y el .cpp se puede descargar desde aquí (si tienes alguna dificultad, dímelo).

http://robocomp.svn.sourceforge.net/vie ... vision=201
http://robocomp.svn.sourceforge.net/vie ... vision=201

Responder
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 18 años

Por ahora solo estoy instalandolo, o sea que lento. Me parece bien el programa, (aunque creo hay un problema al capturar video con las opencv que no liberan memoria), mi idea era sacar imagenes de un DVD primero para probar (y luego cuando funcione hacer la captura desde video del robot)
He leido que windows solo soporta hasta 4 cores mientras que linux soporta decenas de ellos.
Por otro lado lo que soporta varios cores son OpenMP de intel ó las qt
Cuando vaya mejor con las qt le meteré la opencv, bien, bien 🙂

Responder
Página 4 / 9
Compartir: