前面是opencvforunity的一些简单入门例子的剖析,但是貌似后面的例子读起来有点困难了,因为一些方法越来越看不懂,所以另辟蹊径,从看opencv本身教学视频,然后在Unity端还原来理解。

首先本篇从最基础的开始:

我们新建一个场景,现在仅有相机和一个平行光,先不管。

准备工作:新建两个Plane,复位好,各自再新建一个材质球并且拖上去,把材质球的shader改成Unlit/Texture,左边的plane我们把OpenCVForUnity/Examples/Resources/lena这张经典图片拿出来贴上去作为对比。

然后调整一下距离,拉开错开即可,把角度调整为(-270,-90,90)。有强迫症的把相机位置的Y调成0,新开一个脚本,这里命名为Class1。完成后应该如下图:




Unity中配置OpenCV_python


准备工作


这样我们就准备好了左边的图为原图,右边的为我们输出后的图。

然后我们打开脚本,这里用到了Texture2DToMat Example例子中的主要脚本,首先,把例子中的代码照着写一遍:


Unity中配置OpenCV_python_02


Texture2DToMat Example


这里注释写的很详细了,不再赘述,头尾是opencv的log,可以不要。头文件引入不用讲吧?用自带的vs很方便,如下图,给实在不会引入头文件的小白复制用:

using OpenCVForUnity.CoreModule;

using OpenCVForUnity.ImgprocModule;

using OpenCVForUnity.UnityUtils;

using UnityEngine;


Unity中配置OpenCV_Unity中配置OpenCV_03


头文件引入


ok把脚本拖到空白的plane上,运行一下,图片加载成功了,这时候两边是一样的,如下图:


Unity中配置OpenCV_unity_04


图片加载


ok,我们来简单改一下代码,先做一下如何改灰度图,灰度图是opencv中最常用的基础处理图像方法之一。

首先,我们把mat转Texture2D这部分代码之前的这部分空出来,新建一个mat,命名为grayMat,行列数用之前的即可,然后用Imgproc.cvtColor函数改成灰度图,记得把最后赋值的mat改成grayMat,代码如下:


Unity中配置OpenCV_unity_05


灰度图


我们运行一下看看效果:


Unity中配置OpenCV_计算机视觉_06


灰度图效果


好了本节先到这里 ,下节在本节基础上继续。