当前位置: 首页 > news >正文

Python Opencv实践 - 二维码和条形码识别

        使用pyzbar模块来识别二维码和条形码。ZBar是一个开源软件,用来从图像中读取条形码,支持多种编码,比如EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5以及二维码。

        pyzbar是python封装ZBar的模块,我们用它来做条形码和二维码的识别。

        安装方法:

        

平台安装方法
Windows

使用pip安装即可

pip install pyzbar

Ubuntu

sudo apt-get install libzbar-dev

pip install zbar

参考:

ubuntu中安装zbar_ubuntu 安装libzbar依赖-CSDN博客

        python识别二维码并绘制边框和文字的代码:

import matplotlib.pyplot as plt
import numpy as np
import cv2 as cv
from pyzbar.pyzbar import decode#读取二维码图像
img = cv.imread('../../SampleImages/QRCodes.jpg')QRCodes = decode(img)
for QRCode in QRCodes:print(QRCode)stringData = QRCode.data.decode('utf-8')print("二维码字符串是:\"" + stringData + "\"")#绘制出二维码边框points = np.array([QRCode.polygon], np.int32)#numpy reshape: https://blog.csdn.net/DocStorm/article/details/58593682points = points.reshape((-1,1,2))cv.polylines(img, [points], True, (0,255,0), 5)rectPoints = QRCode.rectcv.putText(img, stringData, (rectPoints[0], rectPoints[1]), cv.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,255), 2)plt.imshow(img[:,:,::-1])

运行结果(最后的二维码是残缺的,因此未识别): 

        识别条形码的代码和识别二维码的代码是一样的:

#读取条形码图像
img = cv.imread('../../SampleImages/BARCodes.png')BARCodes = decode(img)
for BARCode in BARCodes:print(QRCode)stringData = BARCode.data.decode('utf-8')print("条形码字符串是:\"" + stringData + "\"")#绘制出二维码边框points = np.array([BARCode.polygon], np.int32)#numpy reshape: https://blog.csdn.net/DocStorm/article/details/58593682points = points.reshape((-1,1,2))cv.polylines(img, [points], True, (0,255,0), 5)rectPoints = BARCode.rectcv.putText(img, stringData, (rectPoints[0] - 20, rectPoints[1] - 5), cv.FONT_HERSHEY_SIMPLEX, 1, (0,0,255), 2)plt.imshow(img[:,:,::-1])

         识别结果:

相关文章:

Python Opencv实践 - 二维码和条形码识别

使用pyzbar模块来识别二维码和条形码。ZBar是一个开源软件,用来从图像中读取条形码,支持多种编码,比如EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5以及二维码。 pyzbar是python封装ZBar的模块,我们用它来做条形码和二维码的识别。…...

树莓派的的串口通信协议

首先,回顾一下串口的核心知识点,也是面试重点: 串口通信通常使用在多机通讯中串口通信是全双工的决定串口通信的成功与否的是 数据格式 和 波特率数据格式:1. 数据位 2.停止位 3. 奇偶校验位 树莓派恢复串口 回忆前几节树莓派刷机…...

DAY60 84.柱状图中最大的矩形

84.柱状图中最大的矩形 题目要求:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 思路 单调栈 本地单调栈的解法和接雨水的题目是遥相呼…...

你知道Linux操作系统的前世今生吗?Linux系统又该如何搭建呢?

文章目录 前言1. Linux 是什么1.1 Unix & Linux 发展历程图1.2 Linux 的发展1.3 Linux 的发行版 2. Linux 环境搭建2.1 环境搭建方式2.2 使用云服务器 3. 使用终端软件连接到 Linux3.1 什么是终端软件3.2 下载安装 XShell3.3 使用 XShell 登陆主机 总结 前言 可能很多人都…...

674. 最长连续递增序列

给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] < nums[i 1] &a…...

DS5上ARM编译器样例工程改为GCC编译

想问一下&#xff0c;DS5上ARM编译器通过的样例工程&#xff0c;换成aarch64-none-elf-gcc工具链&#xff0c;是不是需要把startup.S改成gcc支持的格式呀&#xff1f;怎么改呢&#xff0c;求助大神们指点一下&#xff01;谢谢&#xff01;...

关于Unity Time.deltaTime的理解和使用

Unity中的Time.deltaTime是一个表示上一帧到当前帧所用时间的浮点数。 它可以让Unity应用程序能够以平滑的方式在不同的帧率下运行。 要深刻理解Time.deltaTime&#xff0c;首先得了解Unity引擎得工作原理。 Unity引擎以每秒帧数&#xff08;FPS&#xff09;的形式运行。 比…...

Vue3 配置全局 scss 变量

variables.scss $color: #0c8ce9;vite.config.ts // 全局css变量css: {preprocessorOptions: {scss: {additionalData: import "/styles/variables.scss";,},},},.vue 文件使用...

45.120.101.X 如何找出网站建设中弱点和漏洞

漏洞扫描服务&#xff08;Vulnerability Scan Service&#xff09;集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能&#xff0c;自动发现网站或服务器在网络中的安全风险&#xff0c;为云上业务提供多维度的安全检测服务&#xff0c…...

linux 下打印堆栈信息 jstack pstack gstack 有啥区别?分别的使用场景是啥?

jstack、pstack和gstack是在Linux系统下用于打印堆栈信息的工具&#xff0c;它们的使用场景和功能略有不同。 jstack&#xff1a;jstack是Java虚拟机自带的工具&#xff0c;用于打印Java进程的堆栈信息。它可以显示Java线程的状态、锁信息、线程堆栈等。jstack主要用于诊断Java…...

Vue 3实战:打造交互丰富的任务管理应用

Vue 3实战&#xff1a;打造交互丰富的任务管理应用 前言搭建Vue 3项目步骤 1: 安装Vue CLI 3步骤 2: 创建Vue 3项目步骤 3: 进入项目目录步骤 4: 启动项目步骤 5: 查看项目结构 组件设计与复用1. **组件的职责单一化:**2. **Props传递:**3. **插槽&#xff08;Slots&#xff09…...

python之列表

列表常用操作 l [1,2,3,4,5]# 列表之切片 l1 l[:3] print(l1) # [1, 2, 3],结果为下标0到2 l2 l[3:] print(l2) # [4, 5] ,从下标3开始直到结束 l3 l[1:-1] print(l3) # [2, 3, 4] , 去头去尾...

想要保护服务器的安全,使用哪个软件比较好?

随着互联网的发展普及&#xff0c;网络安全问题也越发凸显&#xff0c;相信不少使用服务器的用户&#xff0c;有遇到过或是听过服务器被入侵导致数据丢失或是被植入病毒木马程序被用来挖矿的情况。那么面对这类情况&#xff0c;我们该如何做好安全工作来保障我们服务器的使用安…...

gitlab图形化界面使用

gitlab使用 创建用户 上面是创建用户基本操作 修改密码 创建组 给组添加用户 创建项目 选择空白项目 退出root用户&#xff0c;切换其他用户 在服务器上创建ssh密钥 使用ssh-ketgen 命令 新服务器上创建的 [rootgitlab ~]# ssh-keygen Generating public/private rsa key …...

Vue使用基本教程(基本介绍及对比,初步使用,构建项目,编辑器等)

一、Vue及与其他前端框架的异同。 Vue.js&#xff08;通常简称为Vue&#xff09;是一个用于构建用户界面的渐进式JavaScript框架。它专注于视图层&#xff0c;采用简单的API设计&#xff0c;使得开发者能够更轻松地构建交互式的单页面应用&#xff08;SPA&#xff09;和用户界…...

基恩士软件的基本操作(四,快速编辑plc技巧)

目录 单元软原件注释快速添加 双击单元配置&#xff0c;进入单元编辑器 KV一键添加注释 双击软元件注释 进入软元件编辑界面 &#xff0c;对弹出的列表中软元件打勾点击登录 元件注释就自动添加了 注释收索&#xff0c;快速编辑软元件 自定义注释收索 空软元件快速查找 …...

通达信的ebk文件

我们在通达信软件中 调出 “自定义板块设置” 这个菜单&#xff0c;点击“导出”&#xff0c;会提示你存储 “自选股.EBK”&#xff0c;其实就是对自定义板块里的目录进行备份的一种方式&#xff0c; 当我们打开 这个文件&#xff0c;你会发现其实就是存储了 股票代码&#xff…...

城市易涝点怎么安装万宾科技内涝积水监测仪?

城市内涝是多个城市广泛存在的问题&#xff0c;经常给城市的居民和基础设施带来一些安全威胁。暴雨引发的道路积水和交通中断、财产损失&#xff0c;甚至公共安全威胁都是城市管理者需要提前预防的问题。为了解决这些问题&#xff0c;内涝积水监测仪的应用是一大重要的举措&…...

css取消移动端长按元素背景色

在开发微信小程序的时候&#xff0c;发现有的元素长按之后&#xff0c;出现了讨厌人的背景色&#xff0c;这就很奇怪&#xff0c;就想把它去掉&#xff0c;所以这里教一下方法&#xff1a; 在所在元素添加css样式&#xff1a; // 取消长按的背景色-webkit-tap-highlight-color:…...

inBuilder低代码平台新特性推荐-第九期

各位知乎的友友们&#xff0c;大家好~ 今天来给大家带来的是inBuilder低代码平台特性推荐系列第九期——子表弹出新增&#xff01; 01 概述 子表弹出新增&#xff0c;是低代码平台提供的一种前端输入组件&#xff0c;在子表字段较多的场景中&#xff0c;有时为了方便…...

基于wet-mcp构建AI工具服务器:MCP协议实践指南

1. 项目概述&#xff1a;一个为AI应用量身定制的“湿”MCP服务器最近在折腾AI应用开发&#xff0c;特别是想让大语言模型&#xff08;LLM&#xff09;能更灵活地调用外部工具和API时&#xff0c;发现了一个挺有意思的项目&#xff1a;n24q02m/wet-mcp。这个项目名听起来有点抽象…...

UVM验证中的“交通指挥官”:深入浅出搞懂virtual sequence与virtual sequencer的协同调度

UVM验证中的“交通指挥官”&#xff1a;深入浅出搞懂virtual sequence与virtual sequencer的协同调度 在复杂的芯片验证环境中&#xff0c;多个接口协议需要并行工作&#xff0c;模拟真实场景下的数据交互。想象一下&#xff0c;一个SoC芯片同时处理AHB总线传输、APB寄存器配置…...

嵌入式开发中的极限编程(XP)实践指南

1. 嵌入式开发的困境与XP的引入在嵌入式系统开发领域&#xff0c;我们常常面临两个几乎无法逃避的现实困境。第一个是所有软件开发项目共通的痛点&#xff1a;截止日期往往在需求明确之前就被固定下来。第二个则是嵌入式开发特有的挑战&#xff1a;目标硬件通常要到项目后期才能…...

shell命令和linux命令的区别

shell命令和linux命令的区别:shell是运行在Linux系统上的一个脚本语言&#xff0c;是一个用C语言编写的程序&#xff0c;而linux命令是对linux系统进行管理的命令。shell可以重复或批量地进行一些命令&#xff0c;也可以把重复执行的命令写到脚本里面执行&#xff0c;而linux命…...

5分钟快速检测微信单向好友:WechatRealFriends免费工具终极指南

5分钟快速检测微信单向好友&#xff1a;WechatRealFriends免费工具终极指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFr…...

Windows 11 24H2中近期被披露了一个高危本地权限提升漏洞

导语&#xff1a;一个普通用户&#xff0c;无需任何特殊权限&#xff0c;只需在锁屏界面上触发一次竞争条件&#xff0c;就能获得系统的最高控制权——这正是CVE-2026-24291&#xff08;代号RegPwn&#xff09;所实现的效果。2026年3月&#xff0c;这个潜伏在Windows辅助功能AT…...

效率拉满!OpenClaw 2.6.6 中文版保姆级配置教程

https://xiake.yun/api/download/package/12?promoCodeIV8E496E2F7A 2026 年开源圈热门的「数字员工」OpenClaw&#xff08;昵称小龙虾&#xff09;&#xff0c;GitHub 星标超 28 万&#xff0c;凭借本地运行 零代码操作 自动干活的核心优势广受关注。它并非普通聊天 AI&am…...

Stable Diffusion WebUI 1.9更新后,采样器和调度器分家了?聊聊‘Automatic’选项背后的懒人哲学

Stable Diffusion WebUI 1.9更新解析&#xff1a;当采样器与调度器分道扬镳 打开最新版Stable Diffusion WebUI 1.9&#xff0c;不少用户会立刻注意到界面上的微妙变化——原本熟悉的采样器选择区域旁&#xff0c;突然多出了一个名为"Schedule type"的下拉菜单。这个…...

开源免费的WPS AI 软件 察元AI文档助手:链路 053:AIAssistantDialog 选区翻译的 streamChatCompletion

链路 053&#xff1a;AIAssistantDialog 选区翻译的 streamChatCompletion 总体链路图 下图在全系列各篇保持一致&#xff0c;仅通过高亮样式标示本篇所覆盖的环节&#xff1b;箭头表示主成功路径&#xff0c;点线为异常或可选路径。阅读任意一篇时都应能回到本图定位&#x…...

零NRE成本实现FPGA转ASIC:技术原理、流程与选型指南

1. 项目概述&#xff1a;零NRE成本的FPGA转ASIC之路在芯片设计领域&#xff0c;FPGA&#xff08;现场可编程门阵列&#xff09;和ASIC&#xff08;专用集成电路&#xff09;的路线选择&#xff0c;一直是工程师和产品经理们需要反复权衡的经典命题。FPGA以其灵活性、快速上市的…...