Visual Studio 2015 年使用 Emgu CV 3.1 从网络摄像头捕获视频时 C# 代码中的异常
Exception In C# Code In Capturing Video From WebCam using Emgu CV 3.1 In Visual Studio 2015
我是 OpenCV 新手。
我在 C# 和 Visual Studio 2015 中使用 Emgu CV 3.1 库。
我在从网络摄像头读取实时视频时遇到问题。不知道Capture()构造函数为什么会出现异常。我在上面浪费了 2 天时间。
Plzzz 帮助我并在 Visual Studio 2015 上为我提供 Emgu CV 3.1 的解决方案。我遇到了 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;
}
}
}
}
`
当Emgu.CV.CvInvoke
无法在您的可执行文件的文件夹中找到非托管 dll 时抛出此异常。
根据 EmguCV Wiki,您必须将 OpenCV dll 从 <EmguFolder>/bin
复制到执行目录(可能是 bin/Debug
)。
将 Emgu dll 文件和所有 Opencv dll 文件复制到您的 Debug 文件夹。它对我有用。
我是 OpenCV 新手。
我在 C# 和 Visual Studio 2015 中使用 Emgu CV 3.1 库。
我在从网络摄像头读取实时视频时遇到问题。不知道Capture()构造函数为什么会出现异常。我在上面浪费了 2 天时间。
Plzzz 帮助我并在 Visual Studio 2015 上为我提供 Emgu CV 3.1 的解决方案。我遇到了 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;
}
}
}
}
`
当Emgu.CV.CvInvoke
无法在您的可执行文件的文件夹中找到非托管 dll 时抛出此异常。
根据 EmguCV Wiki,您必须将 OpenCV dll 从 <EmguFolder>/bin
复制到执行目录(可能是 bin/Debug
)。
将 Emgu dll 文件和所有 Opencv dll 文件复制到您的 Debug 文件夹。它对我有用。