저는 C# (WindowsForm)에서 프로그래밍 중입니다. EmguCV (3.1)를 사용하여 .avi 파일을 캡처하고 싶습니다.캡처 중 EmguCV (3.x)에서 AccessViolationException이 발생했습니다.
유형 'System.AccessViolationException'처리되지 않은 예외는 System.Drawing.dll
에 추가 정보를 발생 : 보호 된 메모리를 읽거나 쓰려고 시도 내가 파일을로드 할 때 나는이 예외를 참조하십시오. 이것은 종종 다른 메모리가 손상되었다는 표시입니다.
private void LoadVideoFromFile() { OpenFileDialog d = new OpenFileDialog(); d.ShowDialog(); _capture = new Emgu.CV.Capture(d.FileName); _capture.ImageGrabbed += ProcessFrame; }
그리고 여기가 AVI 파일을 보여주는 내 코드입니다 :
여기 파일을로드 할 수 내 코드입니다 :
이 예외 후 나는이 창을 참조
private void ProcessFrame(object sender, EventArgs arg)
{
Action a =() =>
{
UMat captured = new UMat();
Boolean cap = _capture.Retrieve(captured);
pictureBox1.Image = captured.Bitmap;
};
pictureBox1.Invoke(a);
}
디버그 모드에서 실행 중이십니까? – Roman
예, 디버그에서 실행 중이지만 문제가 무엇입니까? 디버그와 릴리스의 차이점은 무엇입니까? –
편집 및 계속 기능을 사용하지 않도록 설정하십시오. https://msdn.microsoft.com/en-us/library/ms164926.aspx – Roman