opencv实时二维码识别的一种实现与思路分享

devtools/2025/2/22 16:20:31/

在嵌入式平台上比如 rk3568 这种弱鸡的平台,要做到实时视频处理就非常鸡肋,不像英伟达那种 deepstrem 什么的。
开始的时候,我们使用python 下的 pyzbar + opencv
opencv 读取摄像头的数据然后每帧送到 pyzbar 二维码识别函数里面进行处理,然后打印出识别的数字。结果,非常卡。

优化思路1:利用opencv 支持gstreamer 可否优化速度,编译了很久opencv 但是利用:
print(cv2.getBuildInformation()) 一直显示不支持,暂时放弃。

优化思路2:只执行opencv 读取摄像头数据然后 展示,对比 opencv 直接读取和利用 gstreamer 的python 库直接读,然后展示发现两者速度基本一样,回顾代码,发现占用时间较长的是 二维码的识别。
那么优化二维码识别函数。

如何优化? 可以看到,函数针对 一个图像帧做处理,稍微了解二维码结构的都知道,二维码周围的三个 黑色的方框是二维码的定位特征,那么,如果我们只给 解析函数传送只有二维码的部分,其他不传入,是不是可以提供速度。

代码如下:


import cv2
from pyzbar.pyzbar import decodedef read_qr_code(ima

http://www.ppmy.cn/devtools/160974.html

相关文章

外盘期货数据分析新视角:分钟级高频数据解析

外盘期货数据分析新视角:分钟级高频数据解析 为了促进学习和研究,我们在此分享一部分匿名处理的外盘期货高频历史行情数据集。 外盘期货分钟高频历史行情数据链接: https://pan.baidu.com/s/19zhe1CCpDM56amDKO2nMwQ?pwd4wpq 提取码: 4wpq请注意&…

DeepSeek和ChatGPT的全面对比

一、模型基础架构对比(2023技术版本) 维度DeepSeekChatGPT模型家族LLAMA架构改进GPT-4优化版本参数量级开放7B/35B/120B闭源175B位置编码RoPE NTK扩展ALiBiAttention机制FlashAttention-3FlashAttention-2激活函数SwiGLU ProGeGLU训练框架DeepSpeedMeg…

深入理解时间复杂度:算法效率的核心指标

目录 🚀前言🐍时间复杂度简介✍️时间复杂度判断的5层递进式分析法💯第1层:找基本操作💯第2层:建立数学模型💯第3层:简化表达式💯第4层:特殊情形处理&#x1…

Webpack 的 require.context 和 Vite 的 import.meta.glob 的详细介绍和使用

Webpack 的 require.context 和 Vite 的 import.meta.glob 的详细介绍和使用示例: Webpack 的 require.context 语法 #JavaScript require.context(directory, useSubdirectories, regExp); directory:要搜索的目录。 useSubdirectories:布…

应急响应(linux 篇,以centos 7为例)

一、基础命令 1.查看已经登录的用户w 2.查看所有用户最近一次登录:lastlog 3.查看历史上登录的用户还有登录失败的用户 历史上所有登录成功的记录 last /var/log/wtmp 历史上所有登录失败的记录 Lastb /var/log/btmp 4.SSH登录日志 查看所有日志:…

C++:线程当中的锁专题

在 C 多线程编程中,线程同步是确保程序正确运行的关键环节,而锁机制则是实现线程同步的重要手段。 一、线程的同步之互斥锁 1.1 互斥锁的概念 互斥锁(Mutex,即 Mutual Exclusion 的缩写)是一种最基本的线程同步工具…

ArcGIS Pro挖填方计算指南:全面解析与实施步骤

在工程实施之前,挖填方计算是确保项目成本控制、资源优化及地形合理利用的重要一环。ArcGIS Pro作为一款强大的地理信息系统软件,为工程师和规划者提供了高效的挖填方计算工具。本文将详细介绍如何在ArcGIS Pro中进行挖填方计算,涵盖从数据准…

Docker 在微服务架构中的应用(二)

五、最佳实践与注意事项 5.1 使用多阶段构建 多阶段构建是 Docker 17.05 版本引入的强大特性,它允许在一个 Dockerfile 中使用多个FROM指令,每个FROM指令定义一个独立的构建阶段。这一特性的主要优势在于优化最终生成的镜像大小,同时提高构…