当前位置: 首页 > news >正文

[AR]Vumark(下一代条形码)


文章目录[点击展开](?)[+]


VuMark

准备知识

Vumark的说明: https://library.vuforia.com/articles/Training/VuMark

https://library.vuforia.com/articles/Solution/Working-with-VuMarks-in-Unity

SVG的制作工具:AI(Adobe Illustrator)

SVG查看工具:IE9以上、Chrome、Firefox类的浏览器,或者其它看图软件,以下是在AI中查看SVG文件,可以看到vumark的属性信息。

image

建议先查看Vuforia自带的Vumark Demo。

操作环境

Vuforia 6.0.112

Unity3D 5.3.6f1

Windows 7 x64

操作步骤

1、登录vuforia的后台:https://developer.vuforia.com,创建一个Database,类型为 Vumark

2、点击Add Target ,上传一个SVG文件,此svg文件带有标识点,由美术根据相关制作标准制作

image

3、下载database ( UnityPackage 文件),如果你是Android和IOS,请选择其它格式。

4、新建一个Unity工程,导入vuforia的SDK,将下载好的unitypackage文件导入到unity中

获取VuMark图

接下来要做的事情,就是扫描识别图,进行识别,那么识别图从那儿获取呢?

在vuforia的后台中,在Target 的右侧有个 Generate VuMark,它可以通过这张svg图片文件,生成N多张VuMark图片。

点击“Generate VuMark”,在弹出的窗口中,输入需要生成的ID(100),选择图片的格式,点击 Download

image

点击“Generate VuMark”,在弹出的窗口中,输入需要生成的ID(50),选择图片的格式,点击 Download

这样就得到了ID=100和ID=50的两张VuMark图,这两张图就可以拿来进行识别了。

 

经测试识别最大值和最小值,可正确地识别,打印结果如下:

New VuMark: 999999999999

New VuMark: 0

最多生成图片数量

从上面的图中可知,ID Length =40,约是2的40次方,范围在:0 ~ 999 999 999 999,也就是可以生成 999999999999 +1 张Vumark图。

以下是生成图片的ID,尝试输入不在范围内的值。

输入负数

image

输入超出最大值

image

识别成功和丢失

从Example中,可以看到丢失和识别成功的事件写在以下两个文件中:

VuMarkHandler.cs 绑定在单独的GameObject上
VuMarkEventHandler.cs 绑定在VuMark上

这两个脚本日后研究完善并做更加详细地注释:https://github.com/zhaoqingqing/blog_samplecode/tree/master/ar-vr-mr/vuforia/vumark

相关FQ

1、是否可以同时Active多个database?

在目前的6.0.112版本中,我的测试,不可以同时Load 多个database(包括两个)

 

与FrameMarker比较

FrameMarker

image

FrameMarker特征图是由高通设计的,如上图所示,ID从 0~511,对应着512张图片,ID=1,ID=2 两张图像之间的差异就是最外圈的黑白点之间的差异。

 

Vumark

1、Vumark的特征图是可以自定义的,可以不是黑白点了。

2、最大ID在数量上提升了N倍,0 ~ 999 999 999 999


本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6156303.html,如需转载请自行联系原作者

相关文章:

  • 实现前端MD5加密与记住用户名密码功能
  • 软件测试方法
  • Java EE作业(二)
  • SignalR Core尝鲜
  • MPAndroidChart绘制曲线图、柱状图总结
  • python 的函数、值传递、和作用域(例子)
  • python中的str.strip()的用法
  • 旅行计划(题解)
  • 用jQuery怎么做到前后端分离
  • 第三次冲刺
  • WPF自学入门(九)WPF自定义窗口基类
  • mongodb的数据库操作
  • php转义之gpc
  • 软件工程网络15结对编程作业
  • FZU OJ:2230 翻翻棋
  • 【Linux系统编程】快速查找errno错误码信息
  • 5、React组件事件详解
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android 控件背景颜色处理
  • CentOS6 编译安装 redis-3.2.3
  • ES6 ...操作符
  • iOS小技巧之UIImagePickerController实现头像选择
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript服务器推送技术之 WebSocket
  • Leetcode 27 Remove Element
  • MD5加密原理解析及OC版原理实现
  • React的组件模式
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Sass Day-01
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • windows下如何用phpstorm同步测试服务器
  • Zepto.js源码学习之二
  • 分类模型——Logistics Regression
  • 关于使用markdown的方法(引自CSDN教程)
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)357
  • 如何设计一个比特币钱包服务
  • 软件开发学习的5大技巧,你知道吗?
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • MyCAT水平分库
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​2021半年盘点,不想你错过的重磅新书
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • (独孤九剑)--文件系统
  • (二)windows配置JDK环境
  • (六)软件测试分工
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (一)基于IDEA的JAVA基础10
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .Net 高效开发之不可错过的实用工具
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET序列化 serializable,反序列化
  • /bin/bash^M: bad interpreter: No such file ordirectory