OpencvForUnity

WebCamTextureMarkerLessARExample原理

1、变量声明

 

 

 

 

 2、设置toggle的状态

 3、读取数据持久化路径下的图片

 

 4、将图片格式修改为Texture格式

 5、将原始图片的格式设置为与读取到图片的格式一致

 6、当WebCam初始化完成后,这个方法被调用。

它通过webCamTextureToMatHelper.GetMat ()获得相机图像。根据图像信息设置图像平面的大小,设置了正交相机的视口尺寸以适应图像网格的大小。

 7、相机校准

相机通过输入camMatrix,imageSize从先前估计的摄像机矩阵中计算出各种有用的摄像机特性。

 相机矩阵

其中cx,cy为图像中心点(像素坐标表示的光学中心),fx,fy表示摄像机焦距(fx,fy通常相等,且等于比较大的那一个)。相机矩阵设置代码如下:

 Unity与OpenCV之间的转换

unity与opencv之间存在一些区别:OpenCV使用右手坐标系,Unity为左手坐标系;OpenCV中FOV与Unity中FOV也存在区别;相机坐标系中Z轴的前后关系等。所里在初始化方法中也对这些进行了一些转换。

FOV:

 左右手坐标系转换矩阵

  Z轴向转换矩阵

 

 

8、

9、Unity中 物体坐标系->相机坐标系的变换矩阵ARM

两种方式:移动物体或者移动相机,来匹配图像与模型。


在Unity3D中可以使用脚本创建texture2D贴图,并对像素进行操作。

在这里插入图片描述

其中DICT是dictionary的缩写,4x4位表示marker标记要被划分的位数,边界为1比特位,所以4x4的marker识别时会被分割为6x6格

toggle组件

通过Toggle实现类似按钮的操作,举例实现三个的点击功能,3个按钮可以实现的是各自之间点击对应实现相应的功能,不能BT1点击之后再次点击BT2,此时我们不能控制BT2进行功能实现时关闭BT1正在实现的功能。这是一个弊端,可能会导致同时运行不同功能,很混乱,用Toggle组件就可以避免这个问题了,同一个Canvas下的toggle可以实现点击其中一个关闭其他Toggle。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Works with Unity Cloud Build iOS & Android support Windows10 UWP support WebGL support Win & Mac & Linux Standalone support Preview support in the Editor OpenCV for Unity is an Assets Plugin for using OpenCV 3.4.2 from within Unity. Official Site | ExampleCode | Android Demo WebGL Demo | Tutorial & Demo Video | Forum | API Reference | Support Modules Features: - Since this package is a clone of OpenCV Java, you are able to use the same API as OpenCV Java 3.4.2 (link). - You can image processing in real-time by using the WebCamTexture capabilities of Unity. (real-time face detection works smoothly on iPhone 5) - Provides a method to interconversion of Unity's Texture2D and OpenCV's Mat. - IDisposable is implemented in many classes.You can manage the resources with the “using” statement. - Examples of integration with other publisher assets are available.(e.g. PlayMaker, NatCam, NatCorder) ExampleCode using OpenCV for Unity is available. MarkerBased AR Example MarkerLess AR Example FaceTracker Example FaceSwapper Example FaceMask Example RealTime FaceRecognition Example GoogleVR with OpenCV for Unity Example Kinect with OpenCV for Unity Example AVPro with OpenCV for Unity Example HoloLens with OpenCV for Unity Example PlayMakerActions for OpenCVforUnity NatCam with OpenCVForUnity Example NatCorder with OpenCVForUnity Example OpenCV for Unity uses OpenCV under 3-clause BSD License; see Third-Party Notices.txt file in package for details. System Requirements Build Win Standalone & Preview Editor : Windows 7 or later Build Mac Standalone & Preview Editor : OSX 10.9 or later
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值