Tengo un problema al usar la clase VideoCapture con OpenCV 2.4.2 en Windows XP 32bits. No abre ningún archivo o cámara y solucionarlo es un problema. Estoy usando Visual Studio 2010 pero también he probado el código en QTcreator con el mismo resultado.Error de VideoCapture OpenCV 2.4.2 en Windows
código La prueba es el siguiente:
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
using namespace cv;
using namespace std;
int main()
{
const char* videoPath = "C:/video/";
string videoName = string(videoPath) + "avi.avi";
VideoCapture cap(videoName);
if(!cap.isOpened())
{
std::cout<<"Fail"<<std::endl;
return -3;
}
return 0;
}
La salida es siempre '-3'. Qt Creator muestra una advertencia: Error al abrir el archivo (../../modules/highgui/src/cap_ffmpeg_impl.hpp:361)
I depurado y el problema aparece en la primera línea de:
CvCapture* cvCreateFileCapture_FFMPEG_proxy(const char * filename)
{
CvCapture_FFMPEG_proxy* result = new CvCapture_FFMPEG_proxy;
if(result->open(filename))
return result;
delete result;
#if defined WIN32 || defined _WIN32
return cvCreateFileCapture_VFW(filename);
#else
return 0;
#endif
}
en el archivo interno cap_ffmpeg.cpp.
He probado el mismo código en un Mac con Snow Leopard y funciona. No hay sorpresas aquí ya que debe ser un problema de la biblioteca. He abierto el archivo avi con la misma ruta de acceso usando la función cvCapture fácil y rápido. Obtuve todos los dlls de 'C: \ opencv \ opencv \ build \ x86 \ vc10 \ bin' incluidos en mi archivo de depuración. Obtuve el archivo tbb.dll y todo el contenido 'C: \ opencv \ opencv \ 3rdparty \ ffmpeg' incluido también.
Esto me está volviendo loco así que cualquier ayuda sería apreciada.
Gracias de antemano.
La primera respuesta a [esta pregunta] (http://stackoverflow.com/questions/1987782/why-opencvs-cvcreatecameracapture-and-cvcreatefilecapture-do-not-work-how) podría ser su caso: intente copiar opencv_ffmpeg242d .dll o opencv_ffmpeg242.dll a su directorio de trabajo actual. Además, ¿has construido OpenCV tú mismo? ¿Estás seguro de que todas las dependencias están bien? – Sassa
Todavía tengo el mismo problema. He leído en algunos foros que tal vez sea necesario actualizar los códecs. Probaré eso. ¿Has resuelto el problema? –