• Jueves 14 de Noviembre de 2024, 23:05

Autor Tema:  Captura De Video Programando En OpenCV  (Leído 5868 veces)

Edwart

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Captura De Video Programando En OpenCV
« en: Miércoles 3 de Marzo de 2010, 16:38 »
0
Hola,

Soy nuevo en el foro y por ello pido disculpas si no me expreso bién o cometo algún tipo de error ya sea de expresión y/o de sistema.

Tengo un problema con la captura de video de unas cámaras ImagingSource, concretamente estas : DMK 41BU02

Tengo otras dos cámaras web convencionales, unas Logitech, y el programa que tengo hecho en OpenCV dentro de VisualStudio si que me las detecta y me muetra la imagen en directo, sin mebargo cuando selecciono cualquiera de las otroas dos de ImagingSourse, vuelve a aparecer la ventana para que seleccione otra cámara. (Me las detecta pero no me muestra la imagen.)

A ver si alguien del foro pordría solucionarme este problema porque he intentado todo lo que sabía, que es poco, y no hay manera.

Aquí adjunto el programa para ver imágenes con las cámaras:


-----------------------------------------------------------

#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <stdio.h>

int main()
{
IplImage* frame_left = 0;
CvCapture* capture_left = NULL;
while(capture_left == NULL) capture_left = cvCaptureFromCAM( -1);  
cvNamedWindow( "Left", CV_WINDOW_AUTOSIZE) ;
cvMoveWindow( "Left",100,60);
frame_left = cvQueryFrame( capture_left) ;

int Width_LeftCam   = frame_left->width;         
int Height_LeftCam  = frame_left->height;      
int Step_LeftCam    = frame_left->widthStep;      

printf("nFeatures from Left Cam:n Width=%d, Height=%d, Step=%dnn",
   Width_LeftCam, Height_LeftCam, Step_LeftCam );

   while( 1 )
{
   frame_left = cvQueryFrame( capture_left) ;
   cvShowImage( "Left",frame_left);
   c = cvWaitKey(10);
   if((c & 255) == 27) break;
}
   
cvReleaseCapture( &capture_left);
cvDestroyWindow( "Left");

return 0;
}

-----------------------------------------------------------

Aprovecho para comentar que al darle al "play" no se porque no se ejecuta el programa, pero al ir a buscar el ejecutable a la carpeta Debug, sí que funciona correctamente.

Espero que alguien me pueda solucionar la duda.

Muchas gracias de antemano.

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Captura De Video Programando En OpenCV
« Respuesta #1 en: Miércoles 3 de Marzo de 2010, 17:44 »
0
Hace varios meses que programe en OpenCV y fue muy poco lo que hice. Pero segun la documentacion, a la funcion cvCaptureFromCAM le debes enviar el indice de la camara que quieres utilizar. Enviar -1 esta correcto, pero creo que eso aplica cuando solamente tienes una camara

Edwart

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Captura De Video Programando En OpenCV
« Respuesta #2 en: Miércoles 3 de Marzo de 2010, 18:39 »
0
Muchas gracias posman, pero he cambiado el índice por 0, 1, 2... y sigue existiendo el mismo problema.
A ver si a alguien se le ocurre otra manera.

Gracias de nuevo.

alex serrano

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Captura De Video Programando En OpenCV
« Respuesta #3 en: Viernes 29 de Octubre de 2010, 02:34 »
0
Tengo una pregunta lo que pasa es que desde hace tiempo estoy intentando vincular opencv con visual studio pero no soy capaz me gustaría saber que pasos se puede seguir para cumplir este objetivo y también acerca de este tema también me gustaría saber como se resolvió la duda de las dos camaras es que me toca hacer algo parecido... muchas gracias

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Captura De Video Programando En OpenCV
« Respuesta #4 en: Viernes 29 de Octubre de 2010, 18:05 »
0
Es muy probable que las cámaras no estén soportadas por OpenCV, lo que yo suelo hacer es utilizar la biblioteca videoInput para la conexión con las cámaras (usa DirectX) y después OpenCV para procesar las imágenes, me ha dado muy buenos resultados. De hecho, se supone que las versiones más recientes de OpenCV vendría integrada videoInput, aunque usa la interfaz anterior de OpenCV y no es posible acceder a la interfaz original de videoInput. Resumiendo, les recomiendo que usen videoInput o alguna otra para la captura, y OpenCV para procesar.

posman: es cierto que la función espera el índice de la cámara, pero se supone que al recibir -1 muestra un menú para elegir de entre los dispositivos detectados. Sin embargo, dicha opción no se ha mantenido estable entre diferentes versiones de OpenCV.

alex_serrano: en esta dirección: http://hsblog.mexchip.com/es/2008/11/us ... n-express/ puedes encontrar una miniguía para usar OpenCV con VS 2008 Express, probablemente te sirva.
La imaginación es el límite.
Hardware & Software | Mexchip