c# - OpenCV + Unity3D 集成

标签 c# opencv camera mono blob

我是一名 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 集成的信息。如果您能帮助我解决这个错误并指出我最近的教程以了解更多信息,那就太好了。

提前致谢!

最佳答案

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

  1. OpenCV 库和您的 OpenCV 项目必须编译为静态库 (see OpenCV as a static library) .
  2. OpenCV 库和您的 OpenCV 项目必须针对 32 位和 64 位架构进行编译。
  3. 32 位版本将在编辑器中使用(因为 Unity3D 编辑器仅支持 32 位架构),64 位版本用于生产。
  4. 已编译的 OpenCV 项目必须复制到 Asset > Plugins 文件夹中,OpenCV 库必须复制到 Assets 文件夹中。
  5. 要在 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/

相关文章:

c# - 如何使 xUnit 并行运行 Theory?

opencv - 基准标记或相机姿态估计

c++ - 估算边绘图的平均边厚

camera - 通过 Sony Remote Camera API 连接到多台摄像机

用于工作站客户端的 c# 热图像服务器流

c# - 获取更新的 int 值

c# - 将 ITestOutputHelper 与 Selenium、xUnit 和 C# 一起使用

c# - 从 .mp3 文件中获取 "initial Key"值

c++ - 通过标准平均 C++ 模糊图像

Android 1.6 相机旋转?