Vuforia AR篇(七)— 二维码识别

2024-06-06 04:44
文章标签 二维码 识别 ar vuforia

本文主要是介绍Vuforia AR篇(七)— 二维码识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 前言
  • 一、什么是Barcode ?
  • 二、使用步骤
  • 三、点击二维码显示信息
  • 四、效果

前言

在数字化时代,条形码和二维码已成为连接现实世界与数字信息的重要桥梁。Vuforia作为领先的AR开发平台,提供了Barcode Scanner功能,使得在Unity中实现条形码和二维码的识别变得简单而高效。本文将详细介绍如何在Unity中利用Vuforia的Barcode Scanner功能,创建一个能够识别和响应条形码和二维码的AR体验。


一、什么是Barcode ?

Vuforia的Barcode Scanner是一个强大的功能,它支持广泛的条形码和二维码类型。开发者可以通过简单的设置,在Unity中实现对这些码的扫描和识别,从而触发不同的数字内容展示或交互。

二、使用步骤

  1. 设置相机:在 Unity 场景中添加一个 Vuforia AR 相机。可以在 GameObject -> Vuforia Engine -> AR Camera 中找到。

  2. 创建Barcode

​ 在 AR Camera 的 Inspector 面板中,确保 Vuforia Behaviour 启用。

​ 添加一个 Barcode。可以在 GameObject -> Vuforia Engine -> Barcode` 中找到。
在这里插入图片描述

三、点击二维码显示信息

  1. 创建TestCollider脚本给显示的二维码添加碰撞体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;public class TestCollider : MonoBehaviour
{private BarcodeBehaviour _behaviour; // 声明一个BarcodeBehaviour类型的私有变量private MeshCollider _collider; // 声明一个MeshCollider类型的私有变量void Awake(){_behaviour = GetComponent<BarcodeBehaviour>(); // 获取当前物体的BarcodeBehaviour组件}void Start(){if (_behaviour != null) // 如果BarcodeBehaviour组件不为空{_behaviour.OnBarcodeOutlineChanged += ChangeTest; // 订阅OnBarcodeOutlineChanged事件,指定事件处理函数为ChangeTest}}private void ChangeTest(Vector3[] v3){UpdateMeshCollider(v3); // 调用UpdateMeshCollider函数并传递v3参数}void UpdateMeshCollider(Vector3[] v3){if (!_collider) // 如果MeshCollider组件为空{_collider = gameObject.AddComponent<MeshCollider>(); // 给当前物体添加一个MeshCollider组件_collider.cookingOptions = MeshColliderCookingOptions.None; // 设置MeshCollider的cookingOptions属性}Mesh mesh = new Mesh // 创建一个新的Mesh对象{vertices = v3, // 设置Mesh对象的顶点数组为传入的v3triangles = new[] { 0, 1, 2, 0, 2, 3 } // 设置Mesh对象的三角形数组};_collider.sharedMesh = mesh; // 将创建的Mesh对象赋值给MeshCollider的sharedMesh属性}void Update(){}
}
  1. 创建TestShoot脚本用于射线检测
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Vuforia;public class TestShoot : MonoBehaviour
{public Text tex; // 公共的Text组件变量,用于显示射线检测结果void Awake(){}void Start(){}void Update(){// 从摄像机的屏幕坐标向场景中发射一条射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);// 如果射线检测到碰撞if (Physics.Raycast(ray.origin, ray.direction, out RaycastHit hit)){// 获取碰撞到的物体上的BarcodeBehaviour组件var behaviour = hit.transform.GetComponent<BarcodeBehaviour>();// 将BarcodeBehaviour组件的InstanceData.Text赋值给tex的文本属性tex.text = behaviour.InstanceData.Text;}else{// 如果射线没有检测到任何碰撞,将tex的文本属性设为空tex.text = "";}}
}

3.创建一个Panel和Text来显示内容

在这里插入图片描述

四、效果

在这里插入图片描述

这篇关于Vuforia AR篇(七)— 二维码识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035125

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Clion不识别C代码或者无法跳转C语言项目怎么办?

如果是中文会显示: 此时只需要右击项目,或者你的源代码目录,将这个项目或者源码目录标记为项目源和头文件即可。 英文如下:

BERN2(生物医学领域)命名实体识别与命名规范化工具

BERN2: an advanced neural biomedical named entity recognition and normalization tool 《Bioinformatics》2022 1 摘要 NER和NEN:在生物医学自然语言处理中,NER和NEN是关键任务,它们使得从生物医学文献中自动提取实体(如疾病和药物)成为可能。 BERN2:BERN2是一个工具,

行为智能识别摄像机

行为智能识别摄像机 是一种结合了人工智能技术和监控摄像技术的先进设备,它能够通过深度学习算法对监控画面进行实时分析,自动识别和分析监控画面中的各种行为动作。这种摄像机在安防领域有着广泛的应用,可以帮助监控人员及时发现异常行为,并采取相应的措施。 行为智能识别摄像机可以有效预防盗窃事件。在商场、超市等公共场所安装这种摄像机,可以通过识别异常行为等情况,及时报警并阻止不安全行为的发生

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题 GitHub Pages是一个直接从GitHub存储库托管的静态站点服务,‌它允许用户通过简单的配置,‌将个人的代码项目转化为一个可以在线访问的网站。‌这里使用flutter build web来构建web发布到GitHub Pages。 最近通过flutter build web,通过发布到GitHu

T1打卡——mnist手写数字识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.定义GPU import tensorflow as tfgpus=tf.config.list_physical_devices("GPU")if gpus:gpu0=gpus[0]tf.config.experimental.set_memort_groth(gpu0,True) #设置GPU现存用量按需

使用 VisionTransformer(VIT) FineTune 训练驾驶员行为状态识别模型

一、VisionTransformer(VIT) 介绍 大模型已经成为人工智能领域的热门话题。在这股热潮中,大模型的核心结构 Transformer 也再次脱颖而出证明了其强大的能力和广泛的应用前景。Transformer 自 2017年由Google提出以来,便在NLP领域掀起了一场革命。相较于传统的循环神经网络(RNN)和长短时记忆网络(LSTM), Transformer 凭借自注意力机制

T7:咖啡豆识别

T7:咖啡豆识别 **一、前期工作**1.设置GPU,导入库2.导入数据3.查看数据 **二、数据预处理**1.加载数据2.可视化数据3.配置数据集 **三、构建CNN网络模型**1、手动搭建2、直接调用官方模型 **四、编译模型****五、训练模型****六、模型评估****七、预测**八、暂时总结 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K

mysql无法启动以及cmd下mysql命令无法识别的

1.mysql无法启动 解决方式: Win+R,输入services.msc,找到mysql服务 即默认的服务名是mysql55而不是mysql 2.mysql命令无法识别 直接输入mysql进入数据库报错 这是因为系统并不知道mysql是什么,我们需要在环境变量里添加mysql的安装地址中的bin目录地址。 C:\Program Files\My

Selenium 实现图片验证码识别

前言 在测试过程中,有的时候登录需要输入图片验证码。这时候使用Selenium进行自动化测试,怎么做图片验证码识别?本篇内容主要介绍使用Selenium、BufferedImage、Tesseract进行图片 验证码识别。 环境准备 jdk:1.8 tessdata:文章末尾附下载地址 安装Tesseract 我本地是ubuntu系统 sudo apt install tesserac