easyAR图钉功能实现相关
图钉功能总算做出来了,发现真的是因为没认真看手册导致的=。=【跪
最后的代码很简单,但是过程中看了不少camera/tracker相关的东西,感觉需要整理记录一下
图钉功能记录:
目标:实现用ARCamera扫描处物体后点击图钉实现物体固定,AR扫描功能暂停(但是摄像头还是开启的)
实现预想:将摄像头上关于AR的脚本禁用,根据easyAR数据流,应该集中在ARCamera/CameraDevice/imagetracker这三个的behavior中:
首先看看,在预设体文件夹中先看下ARcamera的结构

其中

那接下去看看
ARCameraBaseBehaviour Class
它的描述是这样的:
ARCameraBaseBehaviour是在AR场景中控制ARCamera的component。
带有ARCameraBaseBehaviour的物体是RenderCamera的父节点,ARCamera和跟踪到的Target之间的相对位置 (transform)由EasyAR控制。
通过在FrameUpdate事件中过滤Target pose(从Frame中获取的TargetInstance的Rotation和Position)可以降低target抖动。
可以通过关闭 RenderReality 来禁止 camera 背景显示。
他的类中函数大概有这些:

几个重要函数的功能如下:

看了一下,有几个地方还是很有意思的。


后面这两个是让我们更加理解easyAR的工作原理的,好像并不能帮我们的达成目的,而这个RenderReality中“camera图像不会显示”打动了我。
那就试试看咯。
【手机忘记截图了】
反正测试的结果是点击图钉后,摄像机都关了,和我们的目标效果不一致,那就先放一边。
好像ARcamera就没什么看的了,那接下去看看cameradevice有没有什么可能达成目标的语句可以用:
CameraDeviceBaseBehaviour Class
CameraDeviceBaseBehaviour是在AR场景中控制CameraDevice的component。
CameraDevice工作在它自己的线程上。你可以Open/Close camera,也可以在任意时间关闭并重新开启一个不同的camera 设备或是设置不同的参数。
StartCapture/StopCapture用来开始和停止camera预览,这两个操作不会影响之前所设置的camera参数。camera的控制方法与系统API提供的方法类似。
CameraDevice是tracker以及其它算法的输入源。CameraDeviceBaseBehaviour包含AR链条的入口, OpenAndStart 。
从介绍上看就感觉很有希望啊!再往下瞅瞅:

这四个函数有意思啊,试试看呗:
【忘记截图again】
OpenAndStart()/Close()与StartCapture()/StopCapture()虽然实际上的后台效果是不一样的,
但是但从我们想要的目标测试出来的效果是一样的——点击图钉后,手机画面会停留在捕获的最后一帧上,仿佛静态画面。并不是目标效果。
那怎么办,只能试试看imagetracker 看看能不能取消跟踪吧——
ImageTracker实现了image target的检测和跟踪。
ImageTracker检测和跟踪 ImageTarget 。你需要首先调用 attachStreamer 将 FrameStreamer 连接至ImageTracker,然后 FrameStreamer 的输出图像将被tracker使用。
你可以通过start/stop来开始和停止跟踪。start和stop是非常轻量的调用。
在Target可以被ImageTracker跟踪之前,你需要通过异步方法loadTarget/unloadTarget或同步方法loadTargetBlocked/unloadTargetBlocked将它载入。
如果需要非阻塞的调用,推荐使用异步的接口。可以通过传入接口的回调来获取load/unload的结果。
还真的有!瞬间感动哭了,而且是非常轻量的调用,代码之神一定是看我傻乎乎的看了那么多不相关的东西没忍住给我答案了哈哈哈
最后还是没有图=。=
必须要说easyAR的文档手册写的还是很通俗易懂好操作的,学习学习!
所以就这么达到了目标。回想起来还是感觉被自己蠢哭了【尴尬】
继续努力吧
easyAR图钉功能实现相关的更多相关文章
- 操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox
原文 操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox 很久没自己写写心得日志与大家分享了,一方面是自己有点忙,一方面是自己有点懒,没有及时总结.因为实践是经验的来源,总结 ...
- 【翻译】Tusdotnet中文文档(3)自定义功能和相关技术
自定义功能和相关技术 本篇按照如下结构翻译 自定义功能 自定义数据仓库 相关技术 架构和总体概念 自定义数据仓库 tusdotnet附带一个存储库TusDiskStore,它将文件保存在磁盘上的一个目 ...
- Netsharp快速入门(之18) 平台常用功能(工作区相关)
作者:秋时 转载须说明出处 第6章 平台功能 6.1 部件二次开发设置 6.1.1 工具栏管理 1.从单据二次开发-工具栏管理进入 2.主要设置显示,对应的方法名或设置权限相关操作 ...
- vi代码智能提示功能及相关配置
vim是一款支持插件.功能无比强大的编辑器,无论你的系统是linux.unix.mac还是windows,都能够选择他来编辑文件或是进行工程级别 的coding.如果能把vim用好了,不仅编程效率能得 ...
- Burp Suite之截断代理功能及相关设置(一)
Burpsuite 1.burpsuite 简介2.设置代理3.Target4.爬网模块5.扫描模块6.扩展模块7.intrude8.Repeater9.Sequencer10.Decoder11.C ...
- sqlserver2012的审计功能的相关理解
1.sqlserver2012可以做实例的审计,以及数据库的审计,基本包括了所有的操作.可以符合我们的要求. 2.审计功能需要实例级别的配置数据库级别的配置,实例上建立“审核”,数据库上建立“数据 ...
- IOC功能以及相关的配置
功能: 控制反转,将对象的创建权反转给Spring可以解决程序耦合性高的问题,大概的意思就是将程序运行时所需要的资源.数据,全部让Spring供给,防止程序与程序之间联系过高,而出现耦合性高的问题. ...
- NodeJS系列~第一个小例子,实现了request.querystring功能
返回目录 百度百科上: Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始,在Node中,Http是首要的.Node为创建http服务器作了优化,所以在网上 ...
- 私有Pods封装个推SDK功能(解决方案)
一:运用场景 公司中同时有好几个APP在开发,而且每个APP都有使用到集成个推SDK来处理消息的功能,以前的做法是每个APP都去集成并在AppDelegate处理一些SDK的代码,包含个推基础配置.消 ...
随机推荐
- js验证是否是数字,支持正负数小数
js验证是否是数字,支持正负数小数. function isShuzi(str){ //var regExp =/[0-9]$/;//不支持小数 var regExp =/^\-?[0-9]+(.[0 ...
- 解决Socket粘包问题——C#代码
解决Socket粘包问题——C#代码 前天晚上,曾经的一个同事问我socket发送消息如果太频繁接收方就会有消息重叠,因为当时在外面,没有多加思考 第一反应还以为是多线程导致的数据不同步导致的,让他加 ...
- 文件存储B+树
文件存储要选用B+树这样的数据结构 “文件存储要选用B+树这样的数据结构”——没记错的话,这是严蔚敏那本数据结构书上的一句结论.不知道是我没细看还是她没细讲,反正当时纯粹应试地记了这么个结论.不求甚解 ...
- juggle dsl语法介绍及codegen浅析
juggle语法规范如下: 类型: bool -> in cpp bool int -> in cpp int64 float -> in cpp double string -&g ...
- alt和title的区别与用法
alt和title的是我们工作中经常用到这两个属性,但是一直没有总结他们的区别.现在就对他们两个的用法做一下总结.相同点:他们都会飘出一个小浮层,显示文本内容.不同点:1.alt只能是元素的属性,而t ...
- JAVA基础——内部类详解
JAVA内部类详解 在我的另一篇java三大特性的封装中讲到java内部类的简单概要,这里将详细深入了解java内部类的使用和应用. 我们知道内部类可分为以下几种: 成员内部类 静态内部类 方法内部类 ...
- Jenkins+Ant+TestNG+Testlink自动化构建集成(完整版)
这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...
- eclipse更改maven的本地路径和外部仓库地址
背景 当前使用eclipse自带的maven碰到两个蛋疼的问题: maven在国内使用如果不进行FQ则会痛苦不堪如便秘. maven下载大量jar包导致某盘不够用,需要换大的分区. 因此为了解决这个问 ...
- Sublime Text 3 注册码
最近觉得Sublime Text3比Notepad++好使,可惜需要购买,于是网上搜了一下,屌丝的福音啊: Sublime Text Build 3065 License key复制如下三个任意一个正 ...
- SQL-结构化查询语言(1)
一:数据查询语言(DQL),Data Query Language,用以从表中获取数据,确定数据怎样在程序中给出.SELECT是DQL中用的最多的! select user,host,password ...