我正在尝试在Unity Pro上使用EmguCV的Capture类,但每次调用它的构造函数时,都会出现以下错误:
DllNotFoundException:opencv_core249 Emgu.CV.CvInvoke..cctor() Rethrow as TypeInitializationException:Emgu.CV.CvInvoke的类型初始化程序抛出异常 Emgu.CV.Capture..ctor(Int32 camIndex)
我已经阅读了解决Visual Studio上的问题,例如,您只需将opencv_coreXXX和opencv_highguiXXX复制并粘贴到输出文件夹,但此解决方案似乎不能与Unity一起使用。
问题是Unity正在搜索正确的文件夹(我放置所有EmguCV dll' s的输出文件夹),但似乎没有找到dll。
要在Unity中安装EmguCV,我只是按照以下链接中所述的步骤进行操作:http://forum.unity3d.com/threads/182600-OpenCV-(EMGUCV-wrapper)-integration-in-Unity
答案 0 :(得分:1)
如果您使用dll作为插件,它应该在Assets / Plugins文件夹中。如果该插件需要其他dll,则它们应该位于项目文件夹的根目录中(或Unity安装文件夹的Editor-folder中)。如果构建了应用程序,那么自然应该使dll可用,例如将它们添加到与可执行文件相同的文件夹中。
您可以尝试使用Dependency Walker跟踪例外情况。
此外,当插件需要highgui.dll时,我在Windows 8中遇到过类似的问题。一旦删除,没有例外(我从未真正发现问题是什么)。