引子
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运行测试如下:
相关解码函数
相关功能与函数说明可以直接访问这个页面:
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 files
results = reader.decode('/PATH/TO/FILES/*.png')
print(results)
# Or a numpy array
# Requires additional installation of opencv
# pip install opencv-python
results = 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
解码输出
原文标题: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运行环境的安装和配置
Python是一种非常流行的编程语言,广泛应用于科学计算、Web开发、人工智能等领域。为了能够正常运行Python程序,我们需要先安装和配置Python运行环境。本文将为您详尽介绍
查看python安装路径的方法
如何查看Python安装路径,以及各个操作系统下的细节和注意事项。 一、Windows操作系统下查看Python安装路径的方法 对于Wind
python安装后idle在哪儿
Python 是一种非常流行的编程语言,它使用简单且易于理解的语法,使得它成为初学者和专业开发人员的首选。Python 的安装非常简单,您只需在官方网站上下载适合您操作系统的安装包,然
如何运行Python程序
运行Python程序非常简单。Python是一种解释型语言,这意味着可以直接通过解释器来执行代码。下面我将详细介绍如何运行Python程序。 一、安装
windows7可以安装python什么版本
Windows 7可以安装多个Python版本,以下是适用于Windows 7的常见Python版本: Python 2.7:Python
PyJNIus :让你在Python中轻松调用Java方法
是你最好的选择。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python安装指南 进行
PyJNIus:在Python中轻松调用Java方法
是你最好的选择。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python安装指南 进行
Camelot:Python超强大的PDF表格提取器
:JSON,Excel,HTML和Sqlite。 下面给大家介绍这个模块的使用方法: 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细
Python实现OpenCV的安装与使用
本文实例讲述了 Python 实现 OpenCV 的安装与使用。分享给大家供 大家参考,具体如下: 由于下一步要开始研究下深度学习,而深度学习领域很多的算法和应 用都是用 Python 来实现
发表于 07-20 11:46
•7次下载
评论