OpenCV中+整合Unity3D [英] OpenCV + Unity3D integration

查看:2860
本文介绍了OpenCV中+整合Unity3D的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一个统一的开发尽我的手在OpenCV的首次。我最初的目标是运行摄像头,并通过在OpenCV的检测unity3d斑点。我是新来的OpenCV,我试图给它的Unity3D(使用Unity 4.3.2,并与统一4.2.1f在Mac电脑上的Windows 8)集成。我跟着这个线程。但我一旦收到以下错误,因为我添加一个新的C#脚本。我删除这个剧本的那一刻,错误的推移(这个脚本是统一生成的C#脚本)。

I am a unity developer trying my hands on opencv for the first time. My initial goal is to run the camera and detect blobs via opencv in unity3d. I am new to OpenCV and am trying to integrate it in Unity3D (on Windows 8 with Unity 4.3.2 and on a mac with Unity 4.2.1f). I followed this thread. But I am getting the following error as soon as I add a new C# script. And the moment I delete this script, the error goes (this script is Unity generated C# script).

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 

我找不到太多关于团结和OpenCV集成。这将是巨大的,如果你能帮助我这个错误,并指向我最近的教程,了解更多信息。

I couldn't find much about Unity and OpenCV integration. It would be great if you could help me out with this error and point me to a recent tutorial to learn more.

在此先感谢!

推荐答案

我们最近不得不面对同样的问题,我会后,将解决你的问题,并帮助其他人的一些通用的信息。

We recently had to deal with the same problem, I'll post some generic information that would solve your problem and help other people.


  1. OpenCV库和你的OpenCV的项目必须被编译为静态库的(见的OpenCV作为静态库)

  2. OpenCV库和你的OpenCV的项目必须被编译为32位和64位架构

  3. 32位版本将在编辑器中使用(因为Unity3D编辑器只支持32位架构),64位版本进行生产。

  4. 编译OpenCV的项目必须在资产> Plugins文件夹里复制,OpenCV库必须在资产文件夹中复制。

  5. 若要使用OpenCV的项目中的C#脚本中,按照此代码示例:

  1. OpenCV library and your OpenCV project must be compiled as static libraries (see OpenCV as a static library).
  2. OpenCV library and your OpenCV project must be compiled for both 32bit and 64bit architectures.
  3. The 32bit version will be used inside the editor (since the Unity3D editor supports 32bit architectures only), the 64 bit version for production.
  4. The compiled OpenCV project must be copied inside the Asset > Plugins folder, the OpenCV library must be copied inside the Assets folder.
  5. To use your OpenCV project inside a C# script, follow this code example:

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();
    }
}



注意使用到指令

其他信息来源:

  • Unity Manual:Plugins

这篇关于OpenCV中+整合Unity3D的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆