2014-06-07 35 views
8

我是一名团结开发者,第一次尝试opencv。我最初的目标是运行相机并通过unity3d中的opencv检测斑点。我是OpenCV的新手,并试图将其集成到Unity3D中(在Unity 8的Unity 8上使用Windows 8,在使用Unity 4.2.1f的Mac上)。我跟着this线程。但是当我添加一个新的C#脚本时,我收到以下错误。而当我删除这个脚本的时候,错误消失了(这个脚本是Unity生成的C#脚本)。OpenCV + Unity3D集成

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的集成。如果你能帮助我解决这个错误,并且指出我最近的教程来了解更多信息,那将是非常好的。

在此先感谢!

回答

9

我们最近不得不面对同样的问题,我会发布一些可以解决您的问题并帮助其他人的通用信息。

  1. OpenCV库和您的OpenCV项目必须编译为静态库(see OpenCV as a static library)
  2. OpenCV库和您的OpenCV项目必须针对32位和64位体系结构进行编译。
  3. 32位版本将在编辑器内部使用(因为Unity3D编辑器仅支持32位体系结构),64位版本用于生产。
  4. 已编译的OpenCV项目必须在Asset> Plugins文件夹内复制,必须在Assets文件夹内复制OpenCV库。
  5. 要使用OpenCV的项目C#脚本中,按照此代码示例:

    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指令!

其他信息来源:

+0

感谢@albemala!我会试试看。 – jainam

+0

@jainam请给我们一个更新,如果它的工作! –

+0

你可以在github上发布一个示例项目吗?你如何确保相机集成与团结协作 – ina