我試圖用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