3

If anyone who use Emgu openCv wrapper in .net 3.5 framework,please tell me why this exception appears,Its inner exception is unable to load cxcore.dll.

4

15 回答 15

11

对于 Emgu CV 版本 <= 2.1,这意味着以下 dll:cvXXX.dll、cvauxXXX.dll、cxcoreXXX.dll、highguiXXX.dll、opencv_ffmpegXXX.dll、mlXXX.dll 和 cvextern.dll,其中 XXX 是 OpenCV 版本号。

对于 Emgu CV 版本 >= 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

它对我有用

于 2011-08-17T12:05:31.663 回答
7

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

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

于 2013-07-09T23:50:23.813 回答
4

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

然后这导致了一个新错误,说我还必须包含highgui210.dll(也适用于 emgucv 2.1 版本)...

然后问题就解决了:)

我希望它也对你有用......

于 2012-09-08T22:43:33.243 回答
3

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

于 2012-05-23T10:11:49.103 回答
3

You don't have the right version of openCV installed, or you don't have the openCV dll's installed at all. The latest version of Emgu uses cxcore110.dll, previous version use cxcore100.dll. They have to either be in the directory your application is running, or in the path (probably %system32%). I had this problem a when I tried to get Emgu running.

于 2009-02-05T05:03:00.793 回答
2

I suggest you turn on Fusion logging and see where it's trying to load cxcore.dll from, and check that you've got it in the right place.

于 2009-02-02T14:52:33.680 回答
2

我有同样的问题。我设置了 Fusion 日志记录,但对我没有帮助。我在与 cxcore110.dll 相同的目录中运行程序集,所以我很难过。

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

使用dependency walker后找到解决方案。它适用于任何具有 VS2005 和 VS2008 的系统。如果您只有 VS2008,那么您将需要 Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)s] 1

于 2009-03-02T18:24:58.943 回答
2

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

于 2015-11-15T21:36:46.270 回答
1

我花了一段时间才弄清楚为什么会在我的情况下发生这种情况,因为上述解决方案都没有解决问题。原来我Windows 10 Pro N安装了缺少媒体功能的。安装后Media Feature Pack它工作。

于 2018-02-02T03:09:16.917 回答
0

就我而言,在 bin\release 下添加这些文件解决了这个问题:npp32_42_9.dllcudart32_42_9.dll

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

于 2014-07-25T04:50:46.290 回答
0

我最近安装了 EmguCV 2.9。64 位应用程序工作正常。当我尝试使用 32 位平台 (x86) 时出现此异常。

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

为了使 32 位应用程序工作,我将“路径”变量更改为 .\x86 文件夹,重新启动计算机。缺点是 64 位解决方案将不再有效。

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

于 2014-07-08T18:10:33.050 回答
0

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

我尝试的所有解决方案都不起作用,但我安装了 EmguCV 2.3 并解决了。我认为 EmguCV 和 opencv 版本对于解决方案很重要。

于 2014-10-04T23:40:33.347 回答
0

将 EMGU 安装的 bin 文件夹中的所有非托管 dll 复制并粘贴到 exe 文件所在的位置(项目文件夹的 Release 或 Debug 文件夹)。
就我而言,非托管 dll 位于“C:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x86”

于 2014-02-18T11:49:03.203 回答
0

我有错误的次数和次数。我使用的是 EmguCV 2.4.9 和 .Net 框架 4.5。我检查了很多教程,但没有找到答案。最后,当我将版本 220 和 249 的 opencv 文件都放入时,它起作用了!

于 2013-08-12T02:17:34.770 回答
0

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

  1. 打开已创建项目的属性
  2. 转到构建部分
  3. 将平台目标更改为“任何 CPU”

保存并重建项目。

于 2015-11-04T20:30:23.810 回答