python识别二维码条形码?用pyzbar一招搞掂(含代码)!

Python实现(条形码,二维码)生成与识别 Python 条形码,二维码生成与识别 阅读详情

原创声明

本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可!

前言

二维码和条形码在我们的日常生活中的使用场景越来越多,使得其识别成为CV技术中的热门方向,下面介绍如何是使用 pyzbar 快速识别二维码和条形码,让您的业务快速成型。

我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢!

一、pyzbar 是什么?

  1. 首先需要了解下 ZBar:ZBar是一个开源软件套件,用于从各种来源(如视频流、图像文件和原始强度传感器)读取条形码。它支持许多流行的符号(条形码类型),包括EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5和二维码。

  2. 而 pyzbar 是通过 Python2和3接口,使用 ZBar 库读取一维条形码和QR码 。

二、安装 pyzbar

1. Windows

在 Windows 的环境下只需要使用 pip 安装即可:

pip install pyzbar
1

2. Ubuntu

sudo apt-get install libzbar-dev
pip install zbar
12

3、centos7

yum install python-devel
yum install zbar-devel
yum install zbar
123

三、开始识别

代码走起:

# -*- coding:utf-8 -*-
"""
@author: HinGwenWoong
@license: MIT
"""
import datetime
import time
from pathlib import Path
import numpy as np
import cv2
from pyzbar import pyzbar


def get_qrcode_result(image_input, binary_max=230, binary_step=2):
    """
    获取二维码的结果
    :param image_input: 输入图片数据
    :param binary_max: 二值化的最大值
    :param binary_step: 每次递增的二值化步长
    :return: pyzbar 预测的结果
    """
    # 把输入图像灰度化
    if len(image_input.shape) >= 3:
        image_input = cv2.cvtColor(image_input, cv2.COLOR_RGB2GRAY)

    # 获取自适配阈值
    binary, _ = cv2.threshold(image_input, 0, 255, cv2.THRESH_OTSU)

    # 二值化递增检测
    res = []
    while (binary < binary_max) and (len(res) == 0):
        binary, mat = cv2.threshold(image, binary, 255, cv2.THRESH_BINARY)
        res = pyzbar.decode(mat)
        binary += binary_step

    return res


if __name__ == '__main__':

    image_dir = Path(r"图片路径")
    total_image = 0
    success_count = 0
    for image_file in Path.iterdir(image_dir):
        if image_file.suffix not in [".jpg", ".png"]:
            # 非图片,跳过该文件
            continue

        # 使用 cv2.imdecode 可以读取中文路径下的图片
        image = cv2.imdecode(np.fromfile(Path(image_dir).joinpath(image_file), 
                                         dtype=np.uint8), 
                             cv2.IMREAD_COLOR)

        start_time = time.time()
        result = get_qrcode_result(image, binary_max=230, binary_step=2)

        print(f"Got {image_file} result: {result}, "
              f"using time : {datetime.timedelta(seconds=(time.time() - start_time))}")

        if len(result) > 0:
            success_count += 1
        total_image += 1

    print(f"total image = {total_image}, success count = {success_count}")

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

结果:

在这里插入图片描述

可能出现的问题:

安装完,run,出现如下报错!
FileNotFoundError: Could not find module '你的路径\Python\Python38\site-packages\pyzbar\libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax.
在这里插入图片描述

解决方法:

总结

以上是如何使用 pyzbar 快速识别二维码和条形码的方法,感谢您看到这里!希望能够助力您的业务快速落地!

我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢!

参考:

[1] pyzbar 安装
[2] OSError: [WinError 126] Cannot find the specified module.

授权须知

  1. 原创文章在推送一天后才可进行转载
  2. 转载文章,禁止声明原创
  3. 不允许直接二次转载,转载请根据原文链接联系作者
  4. 若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。
    但对于未注明转载来源/原文链接的文章,我将保留追述的权利。

作者:HinGwenWoong
一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步!
优快云: HinGwenWoong
原文链接:Python识别二维码条形码?用pyzbar一招搞掂(含代码)

  1. 若需要修改文章的排版,请根据原文链接联系作者
  2. 再次感谢您的认可,转载请遵守如上转载须知!

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

 

Python中使用pyzbar实现二维码生成和识别功能 pyzbar库是一个基于Python的二维码生成和识别库,它提供了丰富的API和工具,方便用户快速实现二维码生成和识别功能。pyzbar库支持多种二维码格式,如QR Code、EAN-13等,并且可以在多种操作系统上运行。 阅读详情

相关推荐

Python条码识别:使用Python进行条形码识别的详细教程

以上代码通过导入zbar库和Pillow库(Pillow是Python中一个强大的图像处理库),首先定义一个decode函数来进行条形码的读取和解码。最后,我们打印出检测到的所有条码信息。在Python中,我们可以通过pip安装zbar库,然后使用Python代码实现条形码的读取与解码。对于条形码的识别,在Python中,有许多开源库可以使用,例如Zbar、zxing等。总结起来,使用Python进行条形码识别,只需要安装zbar和Pillow库,在代码中调用zbar库的接口实现条形码的读取和解码即可。

. 4162

基于python-pyzbar的二维码识别(一)

随着人工智能的不断发展,支付收款码/健康码等等与我们息息相关,二维码确实成为了我们生活中不可或缺的一部分。

weixin_45303602的博客 5988

详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强

前言 这周和大家分享如何用python识别图像里的条码。用到的库可以是zbar。希望西瓜6辛苦码的代码不要被盗了。(zxing的话,我一直没有装好,等装好之后再写一篇) 具体步骤  前期准备 用opencv去读取图片,用pip进行安装。 pip install opencv-python 所用到的图片就是这个 使用pyzbar windows的安装方法是 pip install pyzbar 而mac的话,最好用brew来安装。 (有可能直接就好,也有可能很麻烦) 装好之后就是读取图片,识别条码。 代码如下 import cv2 import pyzbar.pyzbar as p

Opencv学习项目2——二维码解码

Pyzbar 是一个用于解码条形码和二维码的 Python 库。它是基于 ZBar 条形码扫描器库的 Python 绑定,支持多种条形码格式,包括 QR 码、EAN-13、UPC-A、Code 128 等。

weixin_72749746的博客 2142

LC-3 机器语言 指令集

生活本就沉闷,但跑起来就有风

笔记 1万+

音视频开发—H264相关概念和压缩原理详解(GOP、宏块、帧内压缩、帧间压缩)

本文讲述了H264相关概念和原理——GOP概念,SPS与PPS,帧内压缩原理,帧间压缩原理,解释了什么是运动补偿,什么运动矢量等等概念

weixin_46999174的博客 3978

Python识别二维码条形码?用pyzbar一招搞掂(含代码)

Python识别二维码条形码,用Pyzbar一招搞掂 二维码和条形码在我们的日常生活中的使用场景越来越多,使得其识别成为CV技术中的热门方向,下面介绍如何是使用 pyzbar 快速识别二维码和条形码,让您的业务快速成型

HinGwenWoong的博客 1万+

COMSOL电磁仿真案例——感应线圈

COMSOL电磁建模仿真案例——感应线圈

冲击10w 6万+

Python基于pyzbar、opencv、pyqt5库,实现二维码识别 gui 应用程序开发

二维码组成结构基本介绍 二维码识别背景介绍 视觉的方法可以用来估计位置和姿态。最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和、相机畸变矫正、轮廓提取、solvepnp来获取目标相对于相机的位姿。在实际使用中只要相机和目标一方是估计的,那就可以得到全局坐标。如果相机和靶标都在移动,那只能获取到相对坐标。但是受限于相机视角和景深,这样多个特征的识别虽然精度可以很高,但是范围却很小。 对于如何扩大范围,使用二维码是一个很好的思路。首先,二维码本身具有多个特征,单个二维码可以用来实现上

唤醒手腕 1万+

IGV实战指南:从数据导入到Peak可视化的全流程解析

本文提供了一份IGV实战指南,详细解析了从数据导入到Peak可视化的全流程。内容包括软件安装、参考基因组加载、测序数据处理、信号调整以及如何精准定位和可视化Peak区域,并分享了导出出版级矢量图的高级技巧,帮助用户高效完成基因组数据可视化分析。

weixin_29212867的博客 148

STM32 USART高级功能全解析:IrDA、DMA、硬件流控与低功耗唤醒

USART是嵌入式系统中最基础的串行通信外设,其核心原理在于同步/异步时序控制与数据帧收发机制。现代MCU如STM32通过深度集成IrDA调制解调、DMA直传通道、RS232/RS485硬件流控及Stop模式唤醒等扩展能力,显著提升通信可靠性、吞吐效率与能效比。其中,IrDA SIR采用RZI编码实现抗干扰红外传输,DMA通过TXE/RXNE事件驱动实现零CPU干预的连续数据流,而硬件流控(RTS/CTS/DE)和低功耗唤醒(WUF+UESM)则分别保障工业现场鲁棒性与电池级超长待机。本文围绕STM32平台

weixin_28922227的博客 211

20230223-基于pyzbar识别条形码并标注示例

基于pyzbar识别条形码并标注示例 , 有完整的代码示例和说明 。近期为了凑够粉丝数,请大家关注我,粉丝数目够了后发布文章在全部可见

Jack_software的专栏 1730

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 894

探索条形码与二维码的秘密:pyzbar库的神奇之旅

pyzbar是一个功能强大且易于使用的Python库,它能够快速准确地识别图像中的条形码和二维码。通过本文的介绍,你已经学会了如何安装、使用基本函数以及在实际场景中应用pyzbar。无论你是开发者还是普通用户,pyzbar都能为你的工作和生活带来便利。

AIGC搞起 1643

基于V7-690T FPGA纯逻辑实现NVMe SSD盘的读写(不使用软核)

a.NVMe的Admin CQ与Admin SQ命令放在Host内存中;因此SQ的64B要用FPGA的DDR或开一个bram空间存放,同理NVME写到HOST的CQ命令也需要存放在FPGA的DDR或一个bram空间,host收到NVME传来的MSI/MSI-X中断后,去CQ存放空间取CQ指令;b. 发送identify命令后,需要发送tial doorbell通知NVME;(发送CNS01h获取4096字节的固件信息等;发送CNS02h获取1024字节的namaspace list)

宝沐熙的博客 833

使用podspec创建iOS插件

概述 在WWDC 2014全球开发者大会上,苹果开放了动态库、App Extension等全新的功能,这为iOS插件化开发带来了可能。在iOS开发中,动态库是iOS提供的一种资源打包方式,可以将代码文件、头文件、资源文件和说明文档等集中在一起,并且可以在运行时进行动态加载。 目前,很多应用越做越复杂,应用程序也显得越来越臃肿。试想一下,如果将一些不常用的功能做成一个插件,然后根据用户的需求从网络中...

xiangzhihong8的专栏 991

树莓派学习笔记12-安装使用PyZbar

树莓派学习笔记12-安装使用PyZbar

weixin_44098974的博客 1275

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python 进行QR码识别

是一个常用的 Python 模块,用于检测和解码。它是一个由日本开发者开源的项目,基于。库实现,可以高效识别多种格式的条形码。,这样可以提高识别率和准确性。

m0_61395616的博客 805

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

二维码和条形码识别

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

m0_56182552的博客 879

使用OpenCV和pyzbar库识别二维码

对于检测到的每个二维码,我们提取其边界框位置,并在帧中绘制一个绿色矩形框。在本教程中,我们将学习如何使用Python中的OpenCV库打开摄像头,并使用pyzbar库识别二维码。我们需要安装两个主要的库:OpenCV和pyzbar。OpenCV用于处理图像和视频,pyzbar用于解码二维码。表示我们使用的是默认摄像头。如果你有多个摄像头,可以相应地更改这个参数。以下是用于打开摄像头并识别二维码的完整代码。将以上代码保存到一个Python文件中,例如。是一个布尔值,表示读取是否成功,打开摄像头,其中参数。

weixin_44318762的博客 985

#python#手把手教会使用pyzbar识别图片中的二维码和条形码

1.1安装基于windows平台的zbar软件和依赖环境可自行百度下载ps:vcredist_x64.exe就是用来安装这些运行时库的。当我们安装一些使用MSVC开发的软件时,这些软件可能会依赖于某些特定版本的Visual C++运行时库。如果这些运行时库没有被正确地安装到系统中,那么这些软件就可能无法正常运行。

style_sw的博客 1304

怎样用Python识别条形码?

最近一位热心的网友找到宋宋,想做一个条形码或者二维码的识别系统。 现在,他在北京的某知名大型连锁超市,需要通过Python识别条形码,进行快速的商品库存录入。如果已经存在的则不进行录入。不知Python能否实现?所以趁此机会我们给大家介绍下OpenCV和pyzbar。 废话不多说,进入正题...... 条码在生活中随处可见,其可分为三类:一维条码、二维条码、三维条码 一维条码: 我们平时习惯称为条形码。条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识...

qianfengpython的博客 4699

【python pyzbar安装】5分钟教你快速安装pyzbar包

1、什么是ZBar? ZBar是一个开源库,用于扫描、读取二维码和条形码。支持的二维码包括:EAN/UPC,QR等。 2、如何安装zbar ubantu: sudo apt-get install libzbar-dev pip install zbar centos: yum install python-devel yum install zbar-devel pip install z...

赖德发的博客 2万+

用python识别条形码,二维码并且定位标注

原理很简单用OpenCV处理图片pyzbar识别条形码 python里面有一个包pyzbar可以用识别二维码和条形码,我们再结合OpenCV处理图片的功能就可以标注出二维码位置内容 我们生活中的常见的带有二维码和条形码的图片如下图 需要导的包有 import pyzbar.pyzbar as pyzbar import numpy from PIL import Im...

qq_42556555的博客 1万+
上一篇: Python实现淘宝秒杀!学会了省太多钱了!
下一篇: 用Python分析一下疫情的数据加可视化界面!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值