2017-01-12 7 views
0

ビデオファイルからフレームを取得しようとしていますが、フレームを読み込んでいるときにOpenCv:u!= 0例外がスローされています。 Emgu.Cv dllを使用しています。 次のように私は、コードを書かれている:OpenCv:u!= 0ビデオファイルからフレームを読み取っているときに例外が発生しました

private void GetVideoFrames(String Filename) 
{ 
    try 
    { 
     captureFrame = new Capture(Filename); 
     bool Reading = true; 
     while (Reading) 
     { 
      using (frame = captureFrame.QueryFrame().ToImage<Bgr, Byte>()) 
      { 
       if 
       if (frame != null) 
       { 
        imageBox1.Image = frame; 
        frameCount++; 
       } 
       else 
       { 
        Reading = false; 
       } 
      } 
     } 
    } 

誰もがいくつかの助けを提供してもらえます。

+2

「使用する」の後の「if」は正しいと思われますか? –

+0

いいえ、ちょうど間違い –

+0

あなたはそれを修正することができますまた例外メッセージとスタックトレースを提供してください –

答えて

0

私によると、カメラからフレームを取得してください。次のコードを記述することができます。それはテストされ、エラーフリーです。

Capture captureFrame = new Capture(Filename); 
    Mat frame = new Mat(); 
    Mat frame_copy = new Mat(); 

    //Capture Image from file 
    private void GetVideoFrames(String Filename) 
    { 
     try 
     { 
      captureFrame = new Capture(Filename); 
      captureFrame.ImageGrabbed += ShowFrame; 
      captureFrame.Start(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 

    //Show in ImageBox 
    private void ShowFrame(object sender, EventArgs e) 
    { 
     captureFrame.Retrieve(frame); 
     frame_copy = frame; 
     imageBox1.Image = frame_copy ; 
    } 
1

メモリを解放する必要があるかもしれません。 Ex。 frame.Release();

関連する問題