我在下面得到这个例外
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
请指导我。
cvextern dll是本机dll,无法添加到托管项目中。因此,不要将其添加为参考,只需将其复制到bin文件夹即可,因为emgu dll正在搜索它。
不确定这是否是你的情况,但我遇到的是以下情况:引用的托管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