无法在c#EMGU CV中加载cvextern

时间:2019-02-10 21:34:33

标签: c# .net opencv emgucv image-compression

我在下面收到此异常

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

请指导我。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

不确定这是否是您的情况,但是我遇到的是以下情况: 被引用的托管DLL(例如emgu.cv.world)在引用属性中设置为“本地复制”,因为托管的dll使用的是非托管的,因此无法再找到它。所以我最终要做的是以下几点: 将“复制本地”设置为false并将以下内容添加到您的app.config:

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

将Emgu和Emgu ...目录更改为与您的情况相关的目录。 另外,Emgu目录必须位于您的产品目录中,例如e

MyAwesomeProgram
-myprog.exe
-Emgu.CV.World.dll
-Emgu
--x64
---cvextern.dll
--x86
---cvextern.dll