AR.js开发问题详解(二维码识别不出来及AR二维码如何进行训练)
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二维码如何进行训练)相关推荐
- 《Node.js开发实战详解》学习笔记
<Node.js开发实战详解>学习笔记 --持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...
- Flutter完整开发实战详解(二、 快速开发实战篇) | 掘金技术征文
作为系列文章的第二篇,继<Flutter完整开发实战详解(一.Dart语言和Flutter基础)>之后,本篇将为你着重展示:如何搭建一个通用的Flutter App 常用功能脚手架,快速 ...
- Dede二次开发程序详解(dede爱好者必备)
Dede二次开发程序详解(dede爱好者必备) 调用说明:推荐会员(带用户头像) [quote] {dede:sql sql="SELECT mid,mtype,userid,uname, ...
- tekla二次开发用C语言,Tekla能够进行哪些二次开发?Tekla二次开发功能详解
我们话不多说,这次小编来给你讲一些搜罗而来的Tekla软件二次开发的功能.虽然是科普,不过这些二次开发功能有的还真的是很好用的,帮了大忙. 一.桥梁功能 如果向Tekla插件中加入了桥梁模块的功能,通 ...
- solidworks api二次开发实例详解_Solidworks开发语言对比及分析
很多初学Solidworks二次开发的同学,也许都会纠结使用何种语言进行二次开发.对于Solidworks二次开发的语言,官方有VBA,VB.NET,C#以及C++,四种语言. 用户通常会有如下疑问, ...
- DZ各个数据表详解(DZ论坛各表详细说明,二次开发用)
DZ各个数据表详解(DZ论坛各表详细说明,二次开发用) DZ默认库的53个数据表 cdb_access (用户权限表) uid 用户id fid 论坛id allowview 允许浏览 allowpo ...
- C#Socket开发TCP详解(二)
文章目录 C#Socket开发TCP详解(二)--面向连接的套接字编程 简介: **面向连接的套接字** 1.建立连接 2.发送和接收消息 3.关闭连接 C#Socket开发TCP详解(二)–面向连接 ...
- flutter 获取android 还是ios_Flutter完整开发实战详解(二十、 Android PlatformView 和键盘问题)...
作为系列文章的第二十篇,本篇将结合官方的技术文档科普 Android 上 PlatformView 的实现逻辑,并且解释为什么在 Android 上 PlatformView 的键盘总是有问题. 为什 ...
- Flutter完整开发实战详解(十七、 实用技巧与填坑二)
作为系列文章的第十七篇,本篇再一次带来 Flutter 开发过程中的实用技巧,让你继续弯道超车,全篇均为个人的日常干货总结,以实用填坑为主,让你少走弯路狂飙车. Flutter 完整实战实战系列文章专 ...
最新文章
- 一篇深入剖析PCA的好文
- 深度学习数学相关知识
- docker启动后自动退出_Spring Boot项目启动后如何自动执行逻辑
- linux 音频驱动的流程,Intel平台下Linux音频驱动流程分析
- 编程中的一种特殊递归-尾递归
- 阿里云朱照远:边缘计算,无处不在
- mysql配置性能_MySQL配置性能优化
- CVPR 2021 前景背景分开建模,UCLA 视觉研究组提出用于视频预测的动态语义模型...
- .container的应用
- 高仿大漠找字FindStr
- html5 游戏营销,五大H5游戏营销成功案例,你都玩过了吗?
- 桌面上出现两个计算机图标,电脑桌面图标出现成双显示要怎么解决
- 安卓,加密drawable图像资源、从类文件生成drawable
- Alpha版本冲刺(四)
- 2d运用 - 3d 视距
- [风铃开发系列]IView动态菜单配置
- 第五章:正则表达式的使用-常用的正则符号(二)
- JS pos机- V0.2
- 怎样用python定位别人在哪_python程序员教你用微信给对方定位!你说回家!却还在外面鬼混?...
- 万达商管再闯IPO大门
热门文章
- 地铁供电系统原理图_高铁、地铁、火车供电工作原理
- android tabhost黑色背景,怎么设置tabhost的背景颜色
- 微信小程序兼容ios底部导航栏边距
- 再谈数字化转型的基本认识、重点和策略
- STC12系列单片机的空闲模式、休眠模式(又叫掉电模式、停机模式)
- 2-4 Numpy+Matplotlib可视化(二)
- Linux自定义动态壁纸,一个简单的bash脚本可根据特定条件设置动态壁纸
- ubuntu 安装awvs
- 基于element-ui的table实现树级表格操作及单元格合并
- 专科计算机女生就业率,2021女孩就业率最好的专业