停止跟踪图像
回答
可以在需要时停止跟踪,并将3D对象固定在屏幕 /视口上的最后2D位置处。但是扩展跟踪仍在追踪,所以一旦禁用了跟踪,您无法将3D对象固定在最后位置的3D空间中,因为这是跟踪的目的! :)如果你想用其他方式继续跟踪(你提陀螺),那不是一个简单的问题。
要禁用相机的追踪,但保持相机饲料,你会使用类似:
Tracker imageTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
if (imageTracker != null)
imageTracker.Stop();
这将没有任何意义,只是把这些代码上面在DefaultTrackableEventHandler
的OnTrackingFound()
功能(如果您正在使用它,否则您的等价物),因为通常会在相机图像的边缘检测到可跟踪的图像,所以如果立即禁用跟踪,则该对象会卡在视口边缘某处。所以你可能会使用一个计时器,或者最好是让用户按下UI按钮来“冻结”对象。
您还需要更改DefaultTrackableEventHandler
中的OnTrackingLost()
函数,以便在跟踪停止时跟踪“丢失”时不再禁用3D对象的网格渲染器,否则对象会消失。
为什么不切换到3D模式未AR,相反,在那里你可以操纵手机屏幕上用手指对象,或用鼠标或键盘?换句话说,禁用Vuforia但在屏幕上保持“检测到的”3D对象处于活动状态。相反禁用ObjectTrackers在上面的代码中,你会再禁用Vuforia完全,具有:
VuforiaBehaviour.Instance.enabled = false;
你仍然需要编辑OnTrackingLost()
(或同等学历)不再禁用3D对象一次跟踪“丢失'当Vuforia被禁用时。
我发现我想要做的事很复杂。 我正在创建一个检测图像并在其附近放置字符的应用程序,以便使用扩展跟踪,这在理论上使得一旦图像丢失后角色就会在空间中持续存在。 实际上,当手机摄像头移动时,字符消失无明显原因,尽管移动速度很慢,对我来说这没有意义。 我在开始的时候评论过的第一件事是我解决它,但如果你知道其他方法来解决它,我会很乐意倾听:) –
如果我回答了你的问题,请接受我的回答。 我刚刚测试了扩展跟踪的质量,它对我来说效果非常好,即使是3星级目标图像也是如此。如果我慢慢移动相机,我可以将相机远离目标移动/旋转,而不会“丢失”它。那么3D模型有一些不可避免的漂移,但这是可以预料的。如果您的跟踪效果不佳,请检查您的目标图片是否适合追踪Vuforia目标管理器中的5颗星。 问:如果相机失去目标图像的视线,为什么要保留角色? – Abraham
需要考虑的另一件事是扩展跟踪如何工作。相机检测所看到的图像帧中的特征,检查这些特征如何改变/移动,并估计其自身的移动。所以如果你的目标图像是例如在没有其他显着特征的普通桌子上,相机无法弄清楚自己的相对运动。因此,当相机失去目标图像时,为了改善延伸跟踪,相机看到的背景/其他功能必须“忙碌”/具有可以跟踪的其他功能,像普通桌面这样的功能将无法正常工作。 – Abraham
这听起来像你正在试图完成的任务是沿Dead Reckoning线的东西。
我们无法真正得到正确的推算与移动设备的原因(假设您正在运行Vuforia)是因为内部传感器几乎不够精确,无法保持此帧与该帧之间的适当位置最后一帧。 Unity可能认为你离左边几英寸,实际上你会更远。这将产生非常沉重的漂移效果,并且可能会一起杀死模拟的“神奇”感觉。像Google Tango这样的东西在这种类型的东西上要好得多,虽然那些依赖于环境识别,而不是目标识别。 Tangos可以每帧接收新的环境数据,使其更加稳定。因为(大多数)移动设备没有深度传感器或类似的东西,所以Vuforia依靠图像目标作为将物体锚定在场景中的方式,并在每个帧中给它一个不断更新的位置。这样,它不必依靠像加速度计数据那样的任何东西来进行补偿。
你可以禁用跟踪,但它会做到这一点,禁用跟踪和离开你的对象浮动到虚拟深渊(如果你设法从vuforia重写渲染器操作)。
简而言之,Vuforia需要,以便在图像目标正确地跟踪,消除了“上一个已知位置”技术的可能性。
我尝试禁用此代码TrackerManager.Instance.GetTracker
- 1. 谷歌Analytics停止跟踪视图
- 2. 停止跟踪活动
- 3. 跟踪鼠标停止
- 4. 防止Adblock阻止跟踪像素
- 5. 无法停止Git跟踪.gitignore'd文件
- 6. Opencv光流跟踪:停止条件
- 7. 画布停止识别跟踪Android
- 8. Kinect V2“Body Index”跟踪停止工作
- 9. 无法停止跟踪JetBrains .idea文件
- 10. 跟踪随机数并停止循环
- 11. Visual Studio停止跟踪到strlen.asm
- 12. Java Eclipse JRebel Mercurial停止跟踪
- 13. Vue停止跟踪阵列变化
- 14. 水银停止跟踪和忽略
- 15. 在swc-library中停止跟踪(actionscript3)
- 16. 通讯跟踪图像Outlook
- 17. 图像跟踪器库
- 18. 在matlab中跟踪图像
- 19. 如何让Python龟停止试图赶上它跟踪的龟?
- 20. 在GitHub for Windows中,当“停止跟踪此存储库”菜单项时,如何停止跟踪存储库?
- 21. Google跟踪代码管理器图片跟踪像素
- 22. 骨骼跟踪上的关节跟踪图像不正确
- 23. 如何在jquery悬停期间跟踪位置?没有停止()
- 24. magento跟踪像素
- 25. HasOffer像素跟踪
- 26. 禁止STRACK跟踪印刷
- 27. 自定义UISlider(跟踪图像高度)
- 28. 自定义滑块跟踪图像
- 29. 图像使用跟踪可能吗?
- 30. 跟踪栏的阈值图像
看起来像这是这样的一个副本:stackoverflow.com/questions/17087725/how-to-make-vuforia-stop-tracking-in-unity – Riley
如果使用此代码TrackerManager.Instance.GetTracker() 。停止(); Visual Studio无法找到ImageTracker的定义,并且与此TrackerManager.Instance.GetTracker(Tracker.Type.IMAGE_TRACKER).Stop()相同。 visual not cotain定义类型谢谢 –