2014-06-07 33 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