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

    文章

    4421

    浏览量

    67822
  • python
    +关注

    关注

    58

    文章

    4883

    浏览量

    90295
  • 解码库
    +关注

    关注

    0

    文章

    3

    浏览量

    6699

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    Python编辑器的用户: 请安装保存在文件requirements.txt的所有软件包。最常见的方法之一是pip安装: pip inst
    发表于 03-31 09:39

    如何在 Vision Five 2 上安装 python 库?

    这可能是一个完全愚蠢的问题,但我如何在 Vision Five 2 上安装 python 库。 使用该命令后,它给了我这个错误。 默认为用户安装,因为普通站点包不可写 错误:找不到满足要求
    发表于 03-06 07:51

    Fluke 1670系列多功能安装测试仪在设备安装检验的应用

    电气设备安装检验是指按照相关技术标准、规范和设计文件,对电气设备安装过程中的各个环节进行检查、测试和验证,以确保其符合安全、性能、可靠性和法规要求的一系列技术活动。检验贯穿于设备安装
    的头像 发表于 02-28 09:39 612次阅读
    Fluke 1670系列多功能<b class='flag-5'>安装</b><b class='flag-5'>测试</b>仪在设备<b class='flag-5'>安装</b>检验<b class='flag-5'>中</b>的应用

    安装 Python VisionFive_GPIO失败是哪里出了问题?

    尽管按照最新的文档,我在安装 VisionFive.gpio 包时仍然收到错误 sudo apt 安装 libxml2-dev libxslt-dev python3 -m pip 安装
    发表于 02-11 06:13

    射频SMA安装方法

    本文详细介绍了射频SMA接口的安装方法、操作步骤及注意事项,帮助工程人员提升射频系统连接的稳定性。
    的头像 发表于 01-21 17:49 367次阅读
    射频SMA<b class='flag-5'>安装</b><b class='flag-5'>方法</b>

    SMA接口安装方法详解

    本文介绍了SMA接口的安装准备、连接步骤及注意事项,帮助用户掌握规范的SMA射频接口安装方法,提升系统稳定性。
    的头像 发表于 01-14 11:04 794次阅读
    SMA接口<b class='flag-5'>安装</b><b class='flag-5'>方法</b>详解

    导轨水平安装安装面不平的解决方法

    水平安装微型导轨时,安装面不平整会导致导轨变形、运行卡滞甚至缩短寿命。
    的头像 发表于 12-16 17:57 1304次阅读
    导轨水平<b class='flag-5'>安装</b><b class='flag-5'>中</b><b class='flag-5'>安装</b>面不平的解决<b class='flag-5'>方法</b>

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块的少数算法(如早期 SIFT
    发表于 12-13 12:37

    Termux调试圣诞树Python代码

    在Termux调试Python代码(以圣诞树立例)非常简单,核心分为环境准备、代码编写、运行调试三个步骤,下面一步步教你操作: 一、环境准备(首次使用需做) Termux默认可能没有Python
    发表于 12-09 09:02

    MA35-RTT如何安装 Python 和 Libusb (Windows) ?

    MA35-RTT:如何安装 Python 和 Libusb (Windows) ?
    发表于 09-03 08:30

    termux如何搭建python游戏

    Pygame),确保已安装`clang`编译器:`apt install -y clang` 3. 权限问题:若需访问手机文件,安装`termux-setup-storage`并授权存储访问权限。 通过以上步骤,即可在Termux
    发表于 08-29 07:06

    linux虚拟环境调用Linux 版matlab编译的python库时出错

    、readme.txt、 requiredMCRProducts.txt、init.py、CAO_python.ctf。 在linux环境按照以下步骤安装matlab runtime2018b: ① cd到MCR
    发表于 07-18 10:40

    【VisionFive 2单板计算机试用体验】安装openplc

    官网看到开发板可以安装测试openplc,下面来体验下openplc功能。 一、安装软件 1.1、安装软件包 root@starfive:~# sudo apt-get install
    发表于 07-15 23:30

    Hi3861 wifiiot_hispark_pegasus 按教程安装python3 -m pip install build/lite 报错

    问题1: 报错: 问题2: 我安装网上搜的方法执行 python3 -m pip install --user ohos-build==0.4.3 hb -v [OHOS INFO] hb
    发表于 06-14 16:48