我是一名 unity 开发人员,第一次尝试使用 opencv。我最初的目标是在 unity3d 中通过 opencv 运行相机并检测 Blob 。我是 OpenCV 的新手,正在尝试将它集成到 Unity3D 中(在 Windows 8 上使用 Unity 4.3.2,在 Mac 上使用 Unity 4.2.1f)。我关注了this线。但是我在添加新的 C# 脚本后立即收到以下错误。当我删除这个脚本时,错误就出现了(这个脚本是 Unity 生成的 C# 脚本)。
Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0
at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0
at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0
at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
我找不到太多关于 Unity 和 OpenCV 集成的信息。如果您能帮助我解决这个错误并指出我最近的教程以了解更多信息,那就太好了。
提前致谢!
最佳答案
我们最近不得不处理同样的问题,我会发布一些可以解决您的问题并帮助其他人的通用信息。
- OpenCV 库和您的 OpenCV 项目必须编译为静态库 (see OpenCV as a static library) .
- OpenCV 库和您的 OpenCV 项目必须针对 32 位和 64 位架构进行编译。
- 32 位版本将在编辑器中使用(因为 Unity3D 编辑器仅支持 32 位架构),64 位版本用于生产。
- 已编译的 OpenCV 项目必须复制到 Asset > Plugins 文件夹中,OpenCV 库必须复制到 Assets 文件夹中。
要在 C# 脚本中使用您的 OpenCV 项目,请遵循以下代码示例:
using UnityEngine; using System.Collections; using System; using System.Runtime.InteropServices; public class PluginImport : MonoBehaviour { //Lets make our calls from the Plugin [DllImport ("OpenCVProject")] private static extern int openCVFunction(); void Start () { openCVFunction(); } }
注意
using
指令!
其他信息来源:
关于c# - OpenCV + Unity3D 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096329/