【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 视觉应用的快速开发设计提供了参考。

相关推荐
神也畏惧菠萝5 分钟前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
美狐美颜sdk7 分钟前
视频美颜SDK中的YUV与RGBA格式有什么区别?直播APP开发解析
人工智能·计算机视觉·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
jimmyleeee19 分钟前
Agent安全之七:当智能体之间开始“互相信任”------深入理解 OWASP ASI07 不安全的智能体间通信
人工智能·安全
言乐619 分钟前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame
二哈赛车手19 分钟前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
Fluxproxy20 分钟前
大模型批量数据采集:AI 自动化工作流搭建实战
大数据·人工智能·自动化
AAwangzong23 分钟前
AI时代RPA技术解析:如何构建兼顾流程执行与智能决策的自动化平台?
人工智能·经验分享·rpa·智能体
quantdash_cc26 分钟前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
小熊恋旧28 分钟前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python