我试图用emguCV打开一个mpg文件。我使用下面的代码:无法使用EmguCV打开一个mpg文件与C#
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“
我调试过,发现原因是在capture的构造函数中。下面的命令总是返回一个空指针:
_ptr = CvInvoke.cvCreateFileCapture(fileName);
我可以用C++使用此代码打开同样的视频:
cap = cvCaptureFromFile("C:\\tmp\\MarkerMovie.mpg");
我是新来的OpenCV,所以我不知道哪你需要帮助我的信息。我在Windows XP计算机上从http://sourceforge.net/projects/emgucv/昨天安装了emguCV。安装程序的版本是x86_2.3.0.1416。我包含opencv_core231.dll,opencv_highgui231.dll和opencv_imgproc231.dll到我的项目。
有人知道如何让这段代码工作吗? 让我知道你是否需要更多信息。
谢谢。
嗨Steckl,我看不到任何东西你的代码错误,我倾向于使用openfiledialog来防止任何空的异常,只留下编解码器问题,但你的错误是奇怪的。首先尝试使用Openfiledialog并将程序直接指向文件。如果仍然出现错误,您是否可以使用视频上传项目或更简单的版本,以便重新创建错误并查看是否可以直接调试问题。干杯 – Chris 2012-03-05 09:37:28
嗨克里斯,谢谢你的回复。我尝试使用OpenFileDialog,但没有任何成功。我上传了该项目到[链接](http://db.tt/bUwxRCMQ)。 。 Zip文件包含项目和视频。我刚刚上传了项目的所有文件(不知道哪些与运行相关)。我发布的代码在文件VideoStream.cs中。如果您需要更多信息,请与我们联系。 – steckl 2012-03-05 15:32:59