2016-06-19 15 views
0

OpenCV를 처음 사용했습니다.Emgu CV 3.1을 사용하여 WebCam에서 비디오 캡처시 C# 코드 예외 Visual Studio 2015

나는 C# 및 I가 웹캠에서 라이브 비디오를 읽는 문제에 직면하고 2015 년

Visual Studio에서 Emgu CV 3.1 라이브러리를 사용하고 있습니다. Capture() 생성자에서 예외가 발생한 이유를 알 수 없습니다. 나는 그것 위에서 나의 2 일을 낭비했다.

Plzzz 도와주세요. Emgu CV 3.1 for Visual Studio 2015에서 해결책을 제공해주세요. TypeInitializationException이 있습니다. 나는 또한 예외 그림을 업로드한다. TypeInitializationException Is here

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

using Emgu.CV; 
using Emgu.CV.Structure; 

namespace FaceRecognition_3._0 
{ 
    public partial class Form1 : Form 
    { 
     private Capture _capture; 
     private CascadeClassifier _cascadeClassifier; 


     public Form1() 
     { 
      InitializeComponent(); 

      _capture = new Capture(); 
      imgCamUser.Image = _capture.QueryFrame(); 
      startProcess(); 
     } 

     public void startProcess() 
     { 
      _cascadeClassifier = new CascadeClassifier(Application.StartupPath + "/haarcascade_frontalface_alt_tree.xml"); 

      using (var imageFrame = _capture.QueryFrame().ToImage<Bgr, Byte>()) 
      { 
       if (imageFrame != null) 
       { 
        var grayframe = imageFrame.Convert<Gray, byte>(); 
        var faces = _cascadeClassifier.DetectMultiScale(grayframe, 1.1, 10, Size.Empty); //the actual face detection happens here 
        foreach (var face in faces) 
        { 
         imageFrame.Draw(face, new Bgr(Color.BurlyWood), 3); //the detected face(s) is highlighted here using a box that is drawn around it/them 

        } 
       } 

       imgCamUser.Image = imageFrame; 
      } 
     } 
    } 
} 

`

+0

나는 비슷한 문제가있었습니다. EmguCV가 필요로하는 DLL 파일이 누락되었다고 생각합니다. 필요한 openvc dll (예 : opencv_calib3d2410.dll 등)을 모두 추가 했습니까? –

+0

Visual Studio를 관리자로 실행하는 경우 관심이 있으십니까? – BigJump

+0

Emgu CV에 그런 .dll 존재하지 않습니다. opencv_calib3d2410.dll –

답변

0

Emgu.CV.CvInvoke이 실행 파일의 폴더에서 관리되지 않는 DLL을 찾을 수 없을 때이 예외가 발생 .

EmguCV Wiki에 따르면 <EmguFolder>/bin에서 OpenCV dll을 실행 디렉터리 (아마도 bin/Debug)로 복사해야합니다.

+0

모든 .dll 파일을 릴리스/디버그 폴더에 넣었지만 아무 일도 일어나지 않습니다 :( –

+0

[예] (http : //www.emgu. com/wiki/index.php/Download_And_Installation # Building_the_Examples) EmguCV에서 제공합니까? – GeorgeChond

+0

네, 저에게는 잘 작동하지만 프로그램 할 때 TypeInitializationException이 발생합니다. –

0

Emgu dll 파일과 모든 Opencv dll 파일을 Debug 폴더에 복사하십시오. 그것은 나를 위해 작동합니다.