最近为了毕业设计,一直在研究如何在Unity中使用EmguCV,终于在今天有所小成。
我的环境:Unity3d 4.3.1f
libemgucv-windows-universal-gpu-2.4.9.1847
原文参考:http://forum.unity3d.com/threads/182600-OpenCV-(EMGUCV-wrapper)-integration-in-Unity
现在开始正题:1、下载 并安装 libemgucv-windows-universal-gpu-2.4.9.1847,注意,这是我所用的版本,其他的Emgu版本要引入工程的文件可能有所不同。
现给出地址下载:http://sourceforge.net/projects/emgucv/files/emgucv/2.4.9-alpha/
2、打开Emgu的安装文件夹中的bin文件夹,若我的位置C:\Emgu\emgucv-windows-universal-gpu 2.4.9.1847\bin ,将bin目录下的12个dll文件拷贝到Unity下的
Plugins 目录下,然后将X86文件夹下的22个dll文件也拷贝到Plugins文件夹下。
3、Unity工程中新建Editor文件夹,将此时Plugins下的cudart32_50_35 和npp32_50_35 连个文件放入到Editor文件夹。
4、(这一步没有做确认需不需要,如果以上三步可以,则此步省略)将 cudart32_50_35 和npp32_50_35 两个文件复制一份到Unity的根目录下的Editor下,
如C:\Program Files (x86)\Unity\Editor。
5、Player Setting中将设为.NET 2.0
好了,现在如果正常,可以用一下代码测试,一下代码要用到System.Drowing ,现提供Unity可用的System.Drowing.Dll文件的下载地址,直接将其中一个拖 入Plugins即可。
优快云 地址:http://download.youkuaiyun.com/detail/pmrssn/7377343
测试代码:
using UnityEngine;
using System.Collections;
using Emgu.CV;
using Emgu.CV.Util;
using Emgu.CV.UI;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using System.Runtime.InteropServices;
using System;
using System.Drawing;
public class Test : MonoBehaviour {
void Start()
{
Image<Bgr, byte> picture = new Image<Bgr, byte>("C:\\picture1.jpg");
Bgr myWhiteColor = new Bgr(255, 0, 255);
for(int i=0; i<200; i++)
{
picture[i, i] =myWhiteColor;
}
picture.Save("C:\\picture2.jpg");
}
}
运行结果:
picture1.jpg picture2.jpg
注意1:仅测试目标为PC时可用,WebPlayer不可用,其他平台未测
2:不确定是否需要配置OpenCV环境,因为我之前是配好的。