【Arduino UNO Q】 边缘 AI 视觉部署方案:二维码识别

【Arduino UNO Q】 边缘 AI 视觉部署方案:二维码识别

本文介绍了 Arduino UNO Q 开发板结合 OpenCV 和 QR Code 检测器实现二维码识别的项目设计。

项目介绍

Arduino UNO Q 开发板结合 OpenCV 与 QR Code 检测器实现快速二维码识别。

  • 准备工作:硬件连接、软件更新等;
  • 环境搭建:安装 OpenCV 库、所需软件包等;
  • QR Code:使用 OpenCV 和 QR Code 检测器模块实现二维码识别;

准备工作

包括硬件连接、系统安装、软件更新等。

详见:Arduino UNO Q 介绍、环境搭建、工程测试 .

硬件连接

这里采用 SSH 远程控制,使用 Type-C 数据线供电并 WiFi 联网即可。

软件更新

更新软件包

bash 复制代码
sudo apt update
sudo apt upgrade

环境搭建

  • 安装 OpenCV 和 opencv-data 软件包;

    bash 复制代码
    sudo apt install python3-opencv
    sudo apt install opencv-data
  • 执行如下指令验证

bash 复制代码
python3 -c "import cv2,sys;print(cv2.__version__,sys.version)"

终端打印 opencv 版本号。

QR Code

使用 OpenCV 自带的 QR Code 检测器,加载目标图片并弹窗显示检测结果。

流程图

开始
解析参数
读取图片
检测二维码
打印识别内容
画定位框
弹窗显示
按键退出
结束

代码

终端执行 touch qr_code.py 新建程序文件,添加如下代码

python 复制代码
#!/usr/bin/env python3
import cv2
import argparse

# input image path
parser = argparse.ArgumentParser()
parser.add_argument('--image_path', default='./img/dianyuan.jpg', help='输入指令 python3 qr_code.py --image_path ./img/dianyuan.jpg')
args = parser.parse_args()

img = cv2.imread(args.image_path)
if img is None:
    exit('目标不存在,请检查图片路径')

qr = cv2.QRCodeDetector()
data, bbox, _ = qr.detectAndDecode(img)
print(data or '未识别到二维码')

if data and bbox is not None:
    # 画绿色定位框
    pts = bbox[0].astype(int)
    cv2.polylines(img, [pts], True, (0, 255, 0), 2)

    # 标签区域:左上方,左对齐
    x0, y0 = pts[0][0], pts[0][1]
    text = data
    font = cv2.FONT_HERSHEY_SIMPLEX
    scale = 0.8
    thick = 1
    (tw, th), _ = cv2.getTextSize(text, font, scale, thick)

    # 绿色填充条
    bg_top = y0 - th - 8
    bg_bot = y0 - 2
    bg_left = x0
    bg_right = x0 + tw + 4
    cv2.rectangle(img, (bg_left, bg_top), (bg_right, bg_bot), (0, 255, 0), cv2.FILLED)
    # 黑色文字
    cv2.putText(img, text, (x0 + 2, y0 - 4), font, scale, (0, 0, 0), thick, cv2.LINE_AA)
else:
    cv2.putText(img, 'No QR found', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 2)

cv2.namedWindow("QR Code", cv2.WINDOW_NORMAL)    # 可缩放窗口
cv2.imshow('QR Code', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

保存代码。

效果

  • 终端运行指令 python3 qr_code.py --image_path ./img/dianyuan.jpg ,打印结果

  • 弹窗显示结果,按任意键关闭窗口;

    效果如下

总结

本文介绍了 Arduino UNO Q 开发板结合 OpenCV 与 QR Code 检测器实现二维码识别,包括OpenCV 部署、流程图、关键代码和工程测试,为相关产品在边缘 AI 视觉应用的快速开发设计提供了参考。

相关推荐
EmbedLinX2 分钟前
嵌入式之协议解析
linux·网络·c++·笔记·学习
vortex55 分钟前
解密UUOC:Shell编程中“无用的cat使用”详解
linux·shell编程
code bean6 分钟前
【AI 】OpenSpec 实战指南:在 Cursor 中落地 AI 原生开发工作流
人工智能·cursor·ai工作流·openspec
岱宗夫up13 分钟前
Python 数据分析入门
开发语言·python·数据分析
多恩Stone13 分钟前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
江瀚视野14 分钟前
多家银行向甲骨文断贷,巨头甲骨文这是怎么了?
大数据·人工智能
wangjialelele14 分钟前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
码界筑梦坊15 分钟前
325-基于Python的校园卡消费行为数据可视化分析系统
开发语言·python·信息可视化·django·毕业设计
ccLianLian16 分钟前
计算机基础·cs336·损失函数,优化器,调度器,数据处理和模型加载保存
人工智能·深度学习·计算机视觉·transformer
asheuojj17 分钟前
2026年GEO优化获客效果评估指南:如何精准衡量TOP5关
大数据·人工智能·python