C# '的类型初始值设定项;Emgu.CV.CV';抛出异常

C# '的类型初始值设定项;Emgu.CV.CV';抛出异常,c#,emgucv,C#,Emgucv,如果有人在.net 3.5 framework中使用Emgu openCv包装器,请告诉我出现此异常的原因,其内部异常无法加载cxcore.dll。我建议您查看它试图从何处加载cxcore.dll,并检查是否已将其安装在正确的位置。您没有安装正确版本的openCv,或者根本没有安装openCV dll。Emgu的最新版本使用cxcore110.dll,以前的版本使用cxcore100.dll。它们必须位于应用程序正在运行的目录中,或者位于路径中(可能是%system32%)。当我试图让Emgu运

如果有人在.net 3.5 framework中使用Emgu openCv包装器,请告诉我出现此异常的原因,其内部异常无法加载cxcore.dll。

我建议您查看它试图从何处加载cxcore.dll,并检查是否已将其安装在正确的位置。

您没有安装正确版本的openCv,或者根本没有安装openCV dll。Emgu的最新版本使用cxcore110.dll,以前的版本使用cxcore100.dll。它们必须位于应用程序正在运行的目录中,或者位于路径中(可能是%system32%)。当我试图让Emgu运行时,我遇到了这个问题。

我也遇到了同样的问题。我设置了Fusion日志,但对我来说没有帮助。我在与cxcore110.dll相同的目录中运行程序集,所以我被难住了

接下来,我在路径中的一个目录中加载/复制了所有OpenCV DLL,同样的问题

使用dependency walker后找到了解决方案。它在任何有VS2005和VS2008的系统上工作。如果您只有VS2008,那么您需要微软Visual C++ 2005 SP1可重分发包(x86)s]。p> 对于Emgu CV version=2.2,这意味着以下dll:opencv_calib3dXXX.dll、opencv_contribXXX.dll、opencv_coreXXX.dll、opencv_features2dXXX.dll、opencv_highguiXXX.dll、opencv_imgprocXXX.dll、opencv_legacyXXX.dll、opencv_mlXXX.dll、opencv_objectdetectXXX.dll、opencv_videoXXX.dll,其中XXX是opencv版本号

复制这些文件并将其粘贴到C:\WINDOWS\system32中


它适用于我

在尝试了所有可能的opencv_xxx组合后,它适用于我的是包括库npp32_42_9.dll。希望能有所帮助。

这个错误发生在我身上。我添加了cxcore210.dll(对于emgucv 2.1版本),它最初位于bin文件夹中

然后,这导致了一个新的错误,即我还必须包括highgui210.dll(同样适用于emgucv 2.1版本)

然后问题就解决了:)


我希望它也适用于您…

以下是我如何解决这个问题: 复制安装Emgu的“bin”文件夹下的x86(或64位操作系统上的x64)文件夹地址。我的是:C:\Emgu\emgucv windows通用gpu 2.4.9.1847\bin\x86

然后将此地址粘贴到此处:
控制面板>系统>高级系统设置>环境变量>在系统变量中单击“路径”,然后单击编辑>在字符串末尾添加分号,并在该分号后将刚复制到剪贴板的地址粘贴到剪贴板>单击OK。

我多次遇到该错误。我使用的是Emgucv2.4.9和.NETFramework4.5。
我查阅了很多教程,但没有找到答案。最后,当我把版本220和249的opencv文件都放进去时,它工作了

将EMGU安装的bin文件夹中的所有非托管DLL复制并粘贴到exe文件所在的位置(项目文件夹的Release或Debug文件夹)

在我的例子中,非托管DLL位于“C:\Emgu\emgucv windows universal cuda 2.9.0.1922\bin\x86”

我最近安装了emgucv 2.9。64位应用程序运行良好。当我尝试使用32位平台(x86)时,出现了这个异常

我意识到,在遵循安装Emgu的教程时,我已将系统环境变量中的“路径”设置为。\x64文件夹。就我而言,它是C:\Emgu\emgucv windows universal cuda 2.9.0.1922\bin\

为了使32位应用程序正常工作,我将“Path”变量更改为。\x86文件夹,重新启动计算机。回退为64位解决方案将不再有效


理想的解决方案是将所有DLL文件从.\x86或.\x64复制到可执行文件所在的位置。对于我的例子,因为我使用的是LabVIEW+.NETDLL,LabVIEW会将DLL的一个副本保存到它的缓存文件夹中,所以为了便于开发,临时解决方案是更改“Path”变量。当我分发最终的二进制可执行文件时,我将复制匹配的DLL文件。

在我的情况下,在bin\release下添加这些文件解决了这个问题:npp32_42_9.DLLcudart32_42_9.DLL


我花了大约2个小时才得出结论:)

我之前安装了OpenCv2.3.1,昨天我安装了最新版本的EmguCV3.0(也尝试了2.9),但它给出了错误


我尝试的所有解决方案都没有成功,因为我安装了EmguCV 2.3并解决了它。我认为EmguCV和opencv的版本对于解决方案很重要。

在尝试了很多事情之后,如果您的.dll文件都正确放置并且只有版本问题存在,请尝试以下简单步骤:

  • 打开已创建项目的属性
  • 转到构建部分
  • 将平台目标更改为“任意CPU”

  • 保存并重新生成项目。

    如果您已经进行了dll设置,但仍然收到异常,请按如下方式尝试:
    转到项目属性->应用程序->目标框架,并将其更改为NET。框架4,然后单击“是”。再次运行应用程序,它应该可以正常工作

    我花了一段时间才弄明白为什么在我的案例中会发生这种情况,因为上述解决方案都没有解决问题。原来我安装了
    windows10pron
    ,它没有媒体功能。安装
    媒体功能包后,它工作了。

    这很糟糕。更好的方法是:选择所有添加的.dll,并将copy to Output设置为always.Pff:|。在这个问题上花费了几个小时,这个解决方案对EGGUV3.1类似于Windows Server 2012的解决方案进行了完美的操作:安装Media Foundation特性。