Я пытаюсь открыть mpg-файл с помощью emguCV.Я использую следующий код:
if (instance == null)
{
lock (m_lock)
{
try
{
instance = new Capture(0); // capture from camera works fine if a camera is connected
}
catch (NullReferenceException)
{
String sFileName = @"C:\tmp\MarkerMovie.mpg";
try
{
if (File.Exists(sFileName))
{
instance = new Capture(sFileName); // here the exception is thrown
}
else
{
MessageBox.Show("No Camera and no Video-File found");
}
}
catch (NullReferenceException)
{
MessageBox.Show("Couldn't open Video: "+sFileName);
}
}
}
}
Если веб-камера подключена, все работает нормально, но когда я отключаю веб-камеру, строка instance = new Capture(sFileName);
выдает исключение NullReferenceException:
Сообщение =«Невозможно создать захват из C: \ tmp \ MarkerMovie.mpg»
Я отладил и обнаружил причину в конструкторе захвата.Следующая команда всегда возвращает нулевой указатель:
_ptr = CvInvoke.cvCreateFileCapture(fileName);
Я могу открыть то же видео с помощью C ++, используя этот код:
cap = cvCaptureFromFile("C:\\tmp\\MarkerMovie.mpg");
Я новичок в openCV, поэтому я 'Я не уверен, какая информация вам нужна, чтобы помочь мне.Я вчера установил emguCV с http://sourceforge.net/projects/emgucv/ на компьютер с Windows XP.Версия установщика - x86_2.3.0.1416.Я включил opencv_core231.dll, opencv_highgui231.dll и opencv_imgproc231.dll в свой проект.
Кто-нибудь знает, как я могу заставить этот код работать?Дайте мне знать, если вам нужна дополнительная информация.
Спасибо.