无法在c#EMGU CV中加载cvextern

问题描述 投票:0回答:2

我在下面得到这个例外

Unable to load DLL 'cvextern': The specified module could not be found.

当调试器到达下面的这一行时

img = new Image<Bgr, byte>(bitmapImage);

我在作为库创建的组件项目中使用EMGU CV 3.2.0.2721。

在谷歌搜索时,我在下面找到了这个帖子,但我试图将CPU更改为X86,同时也是64,这两个都不起作用。我看到cvextern不是我在C#项目中的“引用”的一部分。我试图添加cvextern dll(我试过64和x86),它说它不能添加,因为它不是C#dll。

unable to load cvextern in a c# project

请指导我。

c# .net opencv emgucv image-compression
2个回答
0
投票

cvextern dll是本机dll,无法添加到托管项目中。因此,不要将其添加为参考,只需将其复制到bin文件夹即可,因为emgu dll正在搜索它。


0
投票

不确定这是否是你的情况,但我遇到的是以下情况:引用的托管DLL(例如emgu.cv.world)在引用属性中设置为“copy local”,因为托管dll使用unmanaged它再也找不到了。所以我最终做的是下面的内容:将“copy local”设置为false并将以下内容添加到app.config中:

 <runtime>  
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
           <probing privatePath="Emgu;Emgu\x86;Emgu\x64"/>  
        </assemblyBinding>  
    </runtime>  

将Emgu和Emgu ...目录更改为与您的案例相关的内容。此外,Emgu目录必须在您的产品目录中

MyAwesomeProgram
-myprog.exe
-Emgu.CV.World.dll
-Emgu
--x64
---cvextern.dll
--x86
---cvextern.dll
© www.soinside.com 2019 - 2024. All rights reserved.