C# EmguCV类型初始化异常
我真的是EgmuCV的新手 我尝试使用以下代码从网络摄像头捕获图像:C# EmguCV类型初始化异常,c#,emgucv,C#,Emgucv,我真的是EgmuCV的新手 我尝试使用以下代码从网络摄像头捕获图像: //Program.cs (Winform) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using E
//Program.cs (Winform)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.UI;
using Emgu.Util;
using Emgu.CV.Structure;
namespace EgmuCVTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Capture cp = new Capture();
ImageViewer imv = new ImageViewer();
Application.Idle += new EventHandler(delegate(object s, EventArgs ea)
{
imv.Image = cp.QueryFrame();
});
imv.ShowDialog();
}
}
}
我得到以下错误:
我检查了.exe文件夹中的所有必要dll,并将其保存在该文件夹中。在遇到相同的问题一段时间后,我发现解决此()问题的说明不完整
cvextern.dll、Emgu.CV.dll、Emgu.CV.UI.dll、Emgu.Util.dll
opencv\u calib3dXXX.dll、opencv\u contribXXX.dll、opencv\u coreXXX.dll、opencv\u features2dXXX.dll、opencv\u highguiXXX.dll、opencv\u imgprocXXX.dll、opencv\u legacyXXX.dll、opencv\u mlXXX.dll、opencv\u objectdetectXXX.dll、opencv\u videoXXX.dll、opencv\u videoXXX.dll
和cu32\u 42\u 9.dll,npp32_42_9.dll,opencv_flann240.dll
只要您包含所有必需的DLL,应用程序就会工作。另一个发生在我身上的情况是,我安装了一个NuGet软件包,但没有为我的项目加载该软件包,因此引用看起来不错,但在运行时,我遇到了TypeInitializationException -管理NuGet包 -包装上的时钟管理
-选中当前项目的复选框。我正在使用Emgu 3.0 64位,要解决此问题,唯一需要做的就是将项目中的生成类型更改为x64 右键单击项目名称->属性->构建->平台目标->x64 指
希望它对其他人有所帮助。如果您使用的是使用GPU支持编译的OpenCV DLL,但您的电脑没有GPU,例如,如果您使用的是带有英特尔图形芯片组的便携式计算机,则也会出现此问题 在这种情况下,您可以使用旧版本2.4.0,它仍然提供DLL而不支持GPU:
如果使用64位操作系统,只需从x64文件夹复制cvextern.dll文件,然后将其复制到项目的debug文件夹
注意:手动执行,因为“添加现有项目”不会复制它 对于我来说,只要将cvextern.dll从
C:\Emgu\emgucv windows universal 3.0.0.2157\bin\x86
复制到..\Visual Studio 2013\Projects\ScreenAnalyzer\TestProject\bin\Debug
就可以解决异常。对于我来说,在多项目解决方案中通过包管理器包含Emgu,通过将引用Emgu的子项目的构建输出路径调整为启动项目(VS 2017)的输出路径(以及执行路径),解决了这个问题。您好,您能描述一下如何使用emgucv 2.4吗。。我在您推荐的软件包中找不到dll?谢谢DLL分别位于32位和64位文件夹bin/
和bin/x64/
中链接的ZIP文件中。最简单的方法是,将所有这些链接到您的项目,您将能够访问初始问题中提到的对象Capture
和ImageViewer
。解决了我3天的撞墙问题。在VS2013 Express中,我刚刚点击了平台目标中的“首选32位”,它突然开始工作。“首选”选项会导致这样的问题,这真是令人恼火。非常感谢。