0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中pyzxing安装与测试方法

OpenCV学堂 来源:OpenCV学堂 作者:OpenCV学堂 2022-06-12 16:50 次阅读

引子

Python中有几个开源的条码解析库,之前我测试过pyzbar、libdmx这些库,发现都是个锤子,主要是功能太弱了,解码能力堪忧,之前我用ZXING C++版本写过一很好用的条码跟二维码的解码库,于是我搜索一下看看是否有Python版本的ZXING,发现真有就是pyzxing,但是需要注意的是,它不是基于ZXing C++的,它是通过Python调用Java的依赖实现解码的,而且默认是支持hard模型跟旋转模式解码的。

pyzxing安装与测试

https://pypi.org/project/pyzxing/

pyzxing在python下安装特别简单,只需要一条命令行执行:

pip install pyzxing

但是它其实是依赖OpenJDK才能运行的,推荐最好安装1.8版本,下载地址如下:

https://www.oracle.com/java/technologies/downloads/#jdk18-windows

安装好之后,cmd运行测试如下:

fa9fe6c4-ea27-11ec-ba43-dac502259ad0.png

相关解码函数

相关功能与函数说明可以直接访问这个页面:

https://pypi.org/project/pyzxing/

它支持三种输入

-直接输入图像文件名,然后解码-使用opencv-python读取图像,输入numpy数据解码-使用目录通配符,支持一次多张解码操作

相关函数演示代码如下:

from pyzxing import BarCodeReader
reader = BarCodeReader()results = reader.decode('/PATH/TO/FILE')# Or file pattern for multiple filesresults = reader.decode('/PATH/TO/FILES/*.png')print(results)# Or a numpy array# Requires additional installation of opencv# pip install opencv-pythonresults = reader.decode_array(img)

OpenCV-Python解码开发演示

在实际使用ZXING的解码中,首先需要做的就是各种图像预处理,因为多数工业喷码的图像质量都很一般,直接ZXING解码一次成功率大概只有50%左右,都需要通过各种预处理之后输入到ZXING二次解码,二次解码成功率会提升到95%左右,这个时候需要针对那些特别难的码进行更深度的预处理跟重新裁剪然后三次解码,总的三次解码成功率可以达到99%左右。这个里面涉及特别多解码细节问题。这里以最简单的几个工业常见的DataMatrix码的解码为例说明:
frompyzxingimportBarCodeReader
importcv2
importos

code_roi=cv2.imread(os.path.join(test_dir,f),cv2.IMREAD_GRAYSCALE)
cv2.bitwise_not(code_roi,code_roi)
ret,binary=cv2.threshold(code_roi,0,255,cv2.THRESH_BINARY|cv2.THRESH_OTSU)
se=cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))
binary=cv2.erode(binary,se)
results=reader.decode_array(binary)
found=False
forresultinresults:
code_txt=result.get('parsed')
ifcode_txtisnotNone:
print("decodecontent:",code_txt)
print("codetype:",result.get('format'))
found=True

fad250a0-ea27-11ec-ba43-dac502259ad0.png

fb048f66-ea27-11ec-ba43-dac502259ad0.png

fb509e56-ea27-11ec-ba43-dac502259ad0.png

解码输出

fbfafe0a-ea27-11ec-ba43-dac502259ad0.png

原文标题:OpenCV+pyzxing实现条码解析

文章出处:【微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。


审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4117

    浏览量

    61547
  • python
    +关注

    关注

    53

    文章

    4701

    浏览量

    83699
  • 解码库
    +关注

    关注

    0

    文章

    3

    浏览量

    6556

原文标题:OpenCV+pyzxing实现条码解析

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    python 学习:在内网 python库-numpy 安装方法,升级pip3版本的指令

    \\\\numpy-1.26.4-cp311-cp311-win_amd64.whl 内网升级pip 升级版本的指令: python.exe -m pip install --upgrade pip--proxy \"http://gateway.schneider.z
    发表于 04-22 17:18

    Python自动化测试框架及其应用

    Pytest是一个非常成熟的全功能的Python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,功能更强大。
    的头像 发表于 04-03 16:15 238次阅读
    <b class='flag-5'>Python</b>自动化<b class='flag-5'>测试</b>框架及其应用

    基于Python的地图绘制教程

    本文将介绍通过Python绘制地形图的方法,所需第三方Python相关模块包括 rasterio、geopandas、cartopy 等,可通过 pip 等方式安装
    的头像 发表于 02-26 09:53 761次阅读
    基于<b class='flag-5'>Python</b>的地图绘制教程

    python运行环境的安装和配置

    Python是一种非常流行的编程语言,广泛应用于科学计算、Web开发、人工智能等领域。为了能够正常运行Python程序,我们需要先安装和配置Python运行环境。本文将为您详尽介绍
    的头像 发表于 11-29 16:17 696次阅读

    查看python安装路径的方法

    如何查看Python安装路径,以及各个操作系统下的细节和注意事项。 一、Windows操作系统下查看Python安装路径的方法 对于Wind
    的头像 发表于 11-29 14:54 1792次阅读

    python安装后idle在哪儿

    Python 是一种非常流行的编程语言,它使用简单且易于理解的语法,使得它成为初学者和专业开发人员的首选。Python安装非常简单,您只需在官方网站上下载适合您操作系统的安装包,然
    的头像 发表于 11-29 14:52 682次阅读

    如何运行Python程序

    运行Python程序非常简单。Python是一种解释型语言,这意味着可以直接通过解释器来执行代码。下面我将详细介绍如何运行Python程序。 一、安装
    的头像 发表于 11-24 09:31 828次阅读

    windows7可以安装python什么版本

    Windows 7可以安装多个Python版本,以下是适用于Windows 7的常见Python版本: Python 2.7:Python
    的头像 发表于 11-23 17:15 2w次阅读

    PyJNIus :让你在Python中轻松调用Java方法

    是你最好的选择。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python安装指南 进行
    的头像 发表于 11-01 10:45 474次阅读

    Python SDK包的使用

    之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python安装指南 进行安装。 (可选1) 如
    的头像 发表于 10-30 15:51 526次阅读
    <b class='flag-5'>Python</b> SDK包的使用

    PyJNIus:在Python中轻松调用Java方法

    是你最好的选择。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python安装指南 进行
    的头像 发表于 10-30 11:32 401次阅读

    Camelot:Python超强大的PDF表格提取器

    :JSON,Excel,HTML和Sqlite。 下面给大家介绍这个模块的使用方法: 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细
    的头像 发表于 10-21 10:57 936次阅读
    Camelot:<b class='flag-5'>Python</b>超强大的PDF表格提取器

    Efinity软件安装方法

    step1:安装Python,注意勾选“Add Python 3.7 to PATH” (2022版本及以后都不需要再安装Python
    的头像 发表于 08-14 15:55 1395次阅读
    Efinity软件<b class='flag-5'>安装</b><b class='flag-5'>方法</b>

    Visual Studio中python使用pip命令安装模块

    Visual Studio中python使用pip命令安装模块
    的头像 发表于 07-27 11:42 1089次阅读
    Visual Studio中<b class='flag-5'>python</b>使用pip命令<b class='flag-5'>安装</b>模块

    Python实现OpenCV的安装与使用

      本文实例讲述了 Python 实现 OpenCV 的安装与使用。分享给大家供 大家参考,具体如下:  由于下一步要开始研究下深度学习,而深度学习领域很多的算法和应 用都是用 Python 来实现
    发表于 07-20 11:46 7次下载