|
最近因为项目需求,研究unity for opencv 以及Dlib FaceLandMark Detecor(需要opencvde 扣脸插件)的插件。所以写些文档,以备自己查看,也可以分享。
unity for opencv 插件的基本配置方法,商店有视频可以自己看。
重点是:一定要记得把OpenCVForUnity文件夹下的StreamingAssets拖到unity跟目录下。
那个里面保存了测试场景需要用到的图片和其他文件。(顺带一提StreamingAssets是unity默认的全平台都能读取到文件的路径)
然后记得点一下顶上方,菜单窗口里面的Tool选单。里面OPEN CV FOR UNITY 里面的
set Plugin import setting
Dlib 的设置操作是一样的同上。
这个是这个插件的附带的文档。本人粗看一脸蒙蔽。完全不知道从哪里入手。
OpenCV for Unity: Main Page
然后自己左右上下摸索了一天后。发现其实正确的姿势应该是从opencv 官方文档入手。
一开始使用这个插件的时候,以为这个插件应该用的opencv 对于C#支持的版本。
但是进底层查看了一下,发现它调用的还是OPENCV C++的Dll
也就是说,opencv C++ 有哪些接口,基本上它都能用。所以直接参考OPENCV官方文档可能是最好的使用方式。
这是opencv论坛上的资料,可能比看书要高效很多吧。
OpenCV 教程 - OpenCV 2.3.2 documentation
基本上你需要什么函数,只要在工程里面搜索这个函数,就能找到。
就是函数可能没有把重构写全,还有就是模块名字可能有改变。
想在unity里面使用OPENCV。第一关还是要知道什么是MAT。
怎么获取把unity的图片给opencv处理。
如果你连MAT是什么都不知道,那你至少需要去科普一下opencv。
如果你已经知道mat是什么了。那么我们怎么把图片变成mat处理呢。
这个插件写了一个静态工具类Utils
静态类名:OpenCVForUnity.Utils
这个类处理还是有各种不智能的,比如说长宽必须一模一样。
还有CvType是什么下面这个文档讲的蛮清楚的。
OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解 - maweifei的博客 - CSDN博客
对于CV_8UC3 为什么表示8bit无符号整形3通道看上面的链接。
这是图片如何显示在unity贴图上的方法。
使用的时候需要注意的是,长宽一定要一样大。然后贴图格式一定要比mat大。比如RGBA32表示的是一个像素32位,4通道。那么mat不能使64bit的。但颜色通道可以少。
然后它写的工具类个人感觉还是挺少的。
经常需要把Vector3转point。所以个人建议在unity工具类里面实现一个这样的互转换方法。或者自己写一个适配器类。
自己写的一个互转的方法。方便使用。
/// <summary>
/// 将Vector2转point
/// </summary>
/// <param name=&#34;vector&#34;></param>
/// <returns></returns>
public static Point Vector2Topoint(Vector2 vector)
{
return new Point(vector.x, vector.y);
}
/// <summary>
/// point强转vector2
/// </summary>
/// <param name=&#34;p&#34;></param>
/// <returns></returns>
public static Vector2 PointToVector2(Point p)
{
return new Vector2((float)p.x, (float)p.y);
}
/// <summary>
/// 将vector数组转point
/// </summary>
/// <param name=&#34;vector&#34;></param>
/// <returns></returns>
public static Point[] Vector2STopointS(Vector2[] vector)
{
Point[] out_p = new Point[vector.Length];
for (int i = 0; i < out_p.Length; i++)
{
out_p = Vector2Topoint(vector);
}
return out_p;
}
余下的研究会继续更新。目前想做的是用unity做换脸的小游戏。进展还算不错的。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|