OpenCV + Unity3D integration
本文关键字:integration Unity3D OpenCV | 更新日期: 2023-09-27 18:07:06
我是一个unity开发者,第一次尝试使用opencv。我最初的目标是在unity3d中通过opencv运行相机并检测blobs。我是OpenCV的新手,我试图将其集成在Unity3D中(在Windows 8上使用Unity 4.3.2,在mac上使用Unity 4.2.1f)。我沿着这条线走。但我得到以下错误,只要我添加一个新的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项目必须被编译为静态库(参见OpenCV作为静态库)。
- 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
指令!
其他信息来源:
- 统一手册:插件