AR.js开发问题详解(二维码识别不出来及AR二维码如何进行训练)

1.      大家碰到的很多都是二维码识别不出来的情况。

原因:周围环境的光太强或太暗,遮挡了二维码的信息,摄像头识别不到全部的信息。

举个例子来说,当你手机的亮度在100%,你在电脑上运行程序,这时候你可以看电脑里面的影像根本不是全部的二维码信息,就是识别不清。

解决办法:1.去打印二维码,要高质量的打印,推荐相机纸,这样不会遗漏二维码信息,清晰度度很好,识别效率很高。

2.或者你用手机打开程序,自己建一个服务器即可,用电脑打开二维码进行识别,电脑亮度不要太亮。

注意:    如果要服务器访问的话,需要HTTPS的支持。

(这里还有一个重要的原因,就是你训练的图片的细节程度尽量高,简单来说,图片要求简单,不要过于复杂。)

2.      第二个AR二维码如何进行训练

我的上一篇WebAR博客里面写了两种方法,但是我只给了链接,但是如果仔细研究的话,并不难懂。

上一篇博客    AR.js打造高效WebAR(three.js+AR.js)

接下来,我给大家讲解第二个比较容易的方法。

大家在Github上下载好demo后,找到AR Marker Training这个东西。

代码位置在:AR.js-master\three.js\examples\marker-training\example

运行起来效果图如下:

我们说先来说明一下几个按钮的作用:

UPLOAD按钮:上传图片替换黑框中间的图片。

DOWNLOAD按钮:下载文本格式的二维数据,这个数据文件用于程序的识别。简单来说,就是一个二维码对应一个数据文件,我们将数据文件加载进程序,当我们摄像头对准二维码的时候,程序就给寻找是否具有这个二维码的数据文件,从而进行匹配。

在我写的demo里面:加载数据文件的代码位于:

// init controls for camera
var markerControls = new THREEx.ArMarkerControls(arToolkitContext,camera, {
type : 'pattern',
patternUrl : 'arcode/marker89.td',
// patternUrl : THREEx.ArToolkitContext.baseURL + '../data/data/patt.kanji',
// as we controls the camera, set changeMatrixMode: 'cameraTransformMatrix'
changeMatrixMode: 'cameraTransformMatrix'
})

你只需训练出数据文件加载进程序(替换patternUrl的路径),当扫描相应二维码就会渲染3D场景。我的那个二维码是自己开发程序写出来的,你要看懂这个训练工具的源码,就能随心制作你需要的训练二维码工具。

注意:外面的边框尽量不要去掉,会导致识别效率下降,ar.js里面有说明的,但是为了美观的画,我们可以调节黑框的比例。

PDF的三个按钮:就是下载二维码PDF用。

AR.js开发问题详解(二维码识别不出来及AR二维码如何进行训练)相关推荐

  1. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 --持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  2. Flutter完整开发实战详解(二、 快速开发实战篇) | 掘金技术征文

     作为系列文章的第二篇,继<Flutter完整开发实战详解(一.Dart语言和Flutter基础)>之后,本篇将为你着重展示:如何搭建一个通用的Flutter App 常用功能脚手架,快速 ...

  3. Dede二次开发程序详解(dede爱好者必备)

    Dede二次开发程序详解(dede爱好者必备) 调用说明:推荐会员(带用户头像)  [quote] {dede:sql sql="SELECT mid,mtype,userid,uname, ...

  4. tekla二次开发用C语言,Tekla能够进行哪些二次开发?Tekla二次开发功能详解

    我们话不多说,这次小编来给你讲一些搜罗而来的Tekla软件二次开发的功能.虽然是科普,不过这些二次开发功能有的还真的是很好用的,帮了大忙. 一.桥梁功能 如果向Tekla插件中加入了桥梁模块的功能,通 ...

  5. solidworks api二次开发实例详解_Solidworks开发语言对比及分析

    很多初学Solidworks二次开发的同学,也许都会纠结使用何种语言进行二次开发.对于Solidworks二次开发的语言,官方有VBA,VB.NET,C#以及C++,四种语言. 用户通常会有如下疑问, ...

  6. DZ各个数据表详解(DZ论坛各表详细说明,二次开发用)

    DZ各个数据表详解(DZ论坛各表详细说明,二次开发用) DZ默认库的53个数据表 cdb_access (用户权限表) uid 用户id fid 论坛id allowview 允许浏览 allowpo ...

  7. C#Socket开发TCP详解(二)

    文章目录 C#Socket开发TCP详解(二)--面向连接的套接字编程 简介: **面向连接的套接字** 1.建立连接 2.发送和接收消息 3.关闭连接 C#Socket开发TCP详解(二)–面向连接 ...

  8. flutter 获取android 还是ios_Flutter完整开发实战详解(二十、 Android PlatformView 和键盘问题)...

    作为系列文章的第二十篇,本篇将结合官方的技术文档科普 Android 上 PlatformView 的实现逻辑,并且解释为什么在 Android 上 PlatformView 的键盘总是有问题. 为什 ...

  9. Flutter完整开发实战详解(十七、 实用技巧与填坑二)

    作为系列文章的第十七篇,本篇再一次带来 Flutter 开发过程中的实用技巧,让你继续弯道超车,全篇均为个人的日常干货总结,以实用填坑为主,让你少走弯路狂飙车. Flutter 完整实战实战系列文章专 ...

最新文章

  1. 一篇深入剖析PCA的好文
  2. 深度学习数学相关知识
  3. docker启动后自动退出_Spring Boot项目启动后如何自动执行逻辑
  4. linux 音频驱动的流程,Intel平台下Linux音频驱动流程分析
  5. 编程中的一种特殊递归-尾递归
  6. 阿里云朱照远:边缘计算,无处不在
  7. mysql配置性能_MySQL配置性能优化
  8. CVPR 2021 前景背景分开建模,UCLA 视觉研究组提出用于视频预测的动态语义模型...
  9. .container的应用
  10. 高仿大漠找字FindStr
  11. html5 游戏营销,五大H5游戏营销成功案例,你都玩过了吗?
  12. 桌面上出现两个计算机图标,电脑桌面图标出现成双显示要怎么解决
  13. 安卓,加密drawable图像资源、从类文件生成drawable
  14. Alpha版本冲刺(四)
  15. 2d运用 - 3d 视距
  16. [风铃开发系列]IView动态菜单配置
  17. 第五章:正则表达式的使用-常用的正则符号(二)
  18. JS pos机- V0.2
  19. 怎样用python定位别人在哪_python程序员教你用微信给对方定位!你说回家!却还在外面鬼混?...
  20. 万达商管再闯IPO大门

热门文章

  1. 地铁供电系统原理图_高铁、地铁、火车供电工作原理
  2. android tabhost黑色背景,怎么设置tabhost的背景颜色
  3. 微信小程序兼容ios底部导航栏边距
  4. 再谈数字化转型的基本认识、重点和策略
  5. STC12系列单片机的空闲模式、休眠模式(又叫掉电模式、停机模式)
  6. 2-4 Numpy+Matplotlib可视化(二)
  7. Linux自定义动态壁纸,一个简单的bash脚本可根据特定条件设置动态壁纸
  8. ubuntu 安装awvs
  9. 基于element-ui的table实现树级表格操作及单元格合并
  10. 专科计算机女生就业率,2021女孩就业率最好的专业