2012-03-04 11 views
0

emguCVを使用してmpgファイルを開こうとしています。私は、次のコードを使用します。C#でEmguCVを使用してmpgファイルをキャプチャ用に開くことができません

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 "

理由はキャプチャのコンストラクタにあります。次のコマンドは、常にNULLポインタを返します。

_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をプロジェクトに追加しました。

誰かがこのコードを動作させる方法を知っていますか? 詳細情報が必要な場合はお知らせください。

ありがとうございました。

+0

こんにちはStecklを持っている場合、私はあなたのコードに何かを参照してください傾けるように注意して、I openfiledialogを使用してヌル例外を防ぎ、コーデックの問題を残す傾向がありますが、エラーは奇妙です。まず、Openfiledialogを試して、プログラムを直接ファイルに向けます。それでもエラーが発生した場合は、プロジェクトをアップロードする方法があるか、単純なバージョンのビデオをアップロードしてエラーを再現し、問題を直接デバッグできるかどうか確認してください。乾杯、 – Chris

+0

こんにちはクリス、あなたの返事をありがとう。私はOpenFileDialogを使ってみましたが、成功しませんでした。私は[link](http://db.tt/bUwxRCMQ)にプロジェクトをアップロードしました。 。 Zip-Fileプロジェクトとビデオを含みます。プロジェクトのすべてのファイルをアップロードしました(実行に関連するファイルがどれか分かりません)。私の投稿のコードはVideoStream.csファイルにあります。より多くの情報が必要な場合はお知らせください。 – steckl

答えて

5

私は同じ問題を抱えていて、プロジェクトにopencv_ffmpeg.dllを追加するとそれが解決されるようです。 (Emgu CVディレクトリのbinディレクトリにあります)投稿したプロジェクトで試してみましたが、これもうまくいくようです。それが役に立てば幸い。

C#でEmguCVで
+0

あなたの答えをありがとう。あなたのソリューションをまだテストする時間はありませんでしたが、それが機能するかどうかをお知らせします。 – steckl

+0

私は今日それを試す時間があったし、それは完璧に動作します。ご回答どうもありがとうございました! :-) – steckl

0

、あなたが例えば、opencv_ffmpeg.dllを配置する必要があります:opencv_ffmpeg2410.dll、あなたはx86または64ビット

関連する問題