美文网首页OpenCVF...
OpenCVForUnity_mat简单处理

OpenCVForUnity_mat简单处理

作者: ShawnWeasley | 来源:发表于2019-03-13 11:26 被阅读0次

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

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

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

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

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

    准备工作

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

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

    Texture2DToMat Example

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

    using OpenCVForUnity.CoreModule;

    using OpenCVForUnity.ImgprocModule;

    using OpenCVForUnity.UnityUtils;

    using UnityEngine;

    头文件引入

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

    图片加载

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

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

    灰度图

    我们运行一下看看效果:

    灰度图效果

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

    相关文章

      网友评论

        本文标题:OpenCVForUnity_mat简单处理

        本文链接:https://www.haomeiwen.com/subject/byhphqtx.html