Я обмениваюсь с EmguCV на OpenCV, так что я могу попробовать некоторые из функций OpenCV, которые еще не завернуты EmguCV. Однако я не могу загрузить мой простой тестовый видеофайл, который загружается без проблем в EmguCV. Глядя на исходный код EmguCV, я замечаю, что они вызывают функции OpenCV C, а не C++, чтобы инициализировать захват из файла (или веб-камеры), поэтому я написал следующий тестовый код (с помощью this answer). Вот мой простой кодПочему видеофайлы не открываются в OpenCV (оба API C & C++)?
int _tmain()
{
string filename = "sample.wmv";
if (!FileExists(filename.c_str))
{
cout << "File does not exist" << endl;
return -1;
}
else
{
cout << "File exists" << endl;
VideoCapture cap (filename);
if(!cap.isOpened())
{
cout << "Failed to open file in OpenCV C++" << endl;
//Trying C API too just-in-case
CvCapture* capture = cvCreateFileCapture(filename.c_str());
if (!capture)
{
cout << "Failed to open file in OpenCV C" << endl;
}
else
{
//Grab frames and do stuff
cvReleaseCapture(&capture);
}
return -1;
}
else
{
//Grab frames and do stuff
}
}
return 0;
}
Когда я запускаю это я получить выход
File exists
Failed to open file in OpenCV C++
Failed to open file in OpenCV C
Это происходит независимо от файла, т.е. это происходит на «sample.wmv», «sample.avi», и даже один из файлов образцов OpenCV «tree.avi».
Почему? Что происходит?
(Я бегу OpenCV 2.4.6 на Windows 8 и машины для Windows 8.1.)
У вас есть необходимые разрешения для вашей системы? Можете ли вы открыть что-нибудь (например, изображения или файлы XML и т. Д.) С помощью opencv? – alrikai
Yep - jpeg открывается отлично. Кроме того, проекты EmguCV успешно открывают одни и те же видеофайлы. – dumbledad
У вас есть образцы? Я могу попробовать это для вас, а затем я дам вам знать, хорошо ли это работает. – Mzk