2017-01-12 1 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

메모리를 해제해야 할 수 있습니다. 전의. frame.Release();

관련 문제