【Arduino UNO Q】 边缘 AI 视觉部署方案:二维码识别
本文介绍了 Arduino UNO Q 开发板结合 OpenCV 与 QR Code 检测器实现二维码识别,包括OpenCV 部署、流程图、关键代码和工程测试,为相关产品在边缘 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 联网即可。

软件更新
更新软件包
sudo apt update
sudo apt upgrade
环境搭建
-
安装 OpenCV 和 opencv-data 软件包;
sudo apt install python3-opencv sudo apt install opencv-data -
执行如下指令验证
python3 -c "import cv2,sys;print(cv2.__version__,sys.version)"
终端打印 opencv 版本号。
QR Code
使用 OpenCV 自带的 QR Code 检测器,加载目标图片并弹窗显示检测结果。
流程图
代码
终端执行 touch qr_code.py 新建程序文件,添加如下代码
#!/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 视觉应用的快速开发设计提供了参考。
更多推荐

所有评论(0)