gpt4 book ai didi

c# - 带有捕获类的 emgu CV C#

转载 作者:行者123 更新时间:2023-12-02 16:41:31 25 4
gpt4 key购买 nike

我一直在从事一个有趣的编码项目,它使用 emguCV 以及 C# 和 .NET 。我遇到的问题是尝试在我的代码中初始化 Capture() 类。每次我尝试初始化 Capture 时都会引发异常:

    The Type initializer for 'Emgu.CV.CvInvoke' threw an Exception
Exception type: System.InitializationException from Emgu.CV.dll

这是我的 C# 代码:
class Vision
{
private Capture cap;
private HaarCascade haar;
private Form1 form;

public Vision()
{
form = new Form1();
cap = new Capture();
haar = new HaarCascade("C:\\haarcascade_frontalface_alt2.xml");
}
public void faceDetect()
{
using(Image<Bgr, Byte> nextFrame = cap.QueryFrame())
{
if(nextFrame != null)
{
Image<Gray, Byte> grayframe = nextFrame.Convert<Gray, Byte>();
var faces = grayframe.DetectHaarCascade(haar, 1.4, 4, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(nextFrame.Width / 8, nextFrame.Height / 8))[0];
foreach(var face in faces)
{
nextFrame.Draw(face.rect, new Bgr(0, double.MaxValue, 0), 1);
}
form.setImage(nextFrame.ToBitmap());
}
}
}
}

代码引用如下:
    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
using System.Drawing;

每次发生异常时,它都会显示在
帽=新捕获();

我还尝试将 Capture 类的相机索引设置为 0,1,2 ......并且也没有运气。我还想也许是因为我在 Mac 上运行 Windows,所以它没有检测到网络摄像头,但后来我确实下载了最新的 Windows 驱动程序来访问摄像头。我感谢所有提前提供帮助的人! :-)

最佳答案

对于 EmguCV 的第一个用户来说,这是一个非常“经典”的错误,所以不用担心,很容易解决!

您需要为您的 Visual Studio 版本安装 MSVCRT。此外,可能是您没有使用“如果较新则复制”将 DLL 文件放入项目中。

查看 the official emguCV site 上的所有详细信息

关于c# - 带有捕获类的 emgu CV C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com