-
2020-12-08 04:02:38
python用于识别二维码的主要有三个包,zbar 、zbarlight、zxing。
从网上down了一个关于zxing的代码下来试试,程序报错是编码问题。重新学习了一下好像对伸手党不是很友好。于是重新开始学习其他两种包。
zbar:
zbar和zbarlight内核一致,都是基于zbar的dll编译加载的。
由于zbar只有32位的版本,听闻64位python最后会出现“ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。"错误,暂时无解。
zbarlight:
zbar和zbarlight内核一致,都是基于zbar的dll编译加载的。安装过程中出现
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
但是检查过我的系统环境,根据网上教程重新装过一次,也没用,还是同样的问题,暂时没有想到解决方法。
zxing:
zxing是基于java的zxing核心的python分支,其原理是调用javaw 加载zxing的core.jar包,再获取输出结果。按照网上所说的,识别能力来说,zxing>zbarlight(zbar)。所以我又回来了!
下载:
pip3 install zxing
或者直接在pycharm中导入,ctrl+回车
实现代码:
import os
import logging
from PIL import Image
import zxing #导入解析包
import random
logger=logging.getLogger(__name__)
if not logger.handlers :logging.basicConfig(level=logging.INFO)
DEBUG= (logging.getLevelName(logger.getEffectiveLevel())=='DEBUG')
def ocr_qrcode_zxing(filename):
#在当前目录生成临时文件,规避java的路径问题
img= Image.open(filename)
ran= int(random.random()*100000)
img.save('%s%s.jpg' %(os.path.basename(filename).split('.')[0],ran))
zx = zxing.BarCodeReader()
data = ''
zxdata = zx.decode('%s%s.jpg' %(os.path.basename(filename).split('.')[0], ran))
print(zxdata)
#删除临时文件
os.remove('%s%s.jpg' %(os.path.basename(filename).split('.')[0],ran))
if zxdata:
logger.debug(u'zxing识别二维码:%s,内容: %s' %(filename ,zxdata))
data = zxdata
else:
logger.error(u'识别zxing二维码出错:%s' %(filename))
img.save('%s-zxing.jpg' %filename)
return data
if __name__ == '__main__':
filename = r'G:\wx\ww\c5a9367c3df1d2c8d64f1dc28bdb279.png'
#zxing二维码识别
ltext = ocr_qrcode_zxing(filename)
logger.info( u'[%s]Zxing二维码识别:[%s]!!!' %(filename,ltext))
print(ltext)
注意,以上代码识别的二维码信息中不能为中文。不然会报错,解决方法需要另外学习,稍等我一会。
打印出来的信息就是原始的二维码信息了。以上代码也是从同行处借鉴而来,学习参考。。
其他两种方法暂时么有尝试过,电脑位数实在令望而却步。
中文报错问题解决:
找到python3安装路径下的zxing包,进去在init修改源码,将barcode函数中的decode(),加上“gkb”,运行即可。
从另外大牛那里学习到的是将函数直接return utf-8,尝试过,没有用,不知道为什么。
更多相关内容 -
Python 识别二维码 及图像中色块颜色识别
2019-11-15 22:30:41Python 识别二维码 及图像中色块颜色识别,根据阈值可以滤除波动情况的 干扰 Python recognizes the color of two-dimensional code and color block in image. According to the threshold value, the ... -
python识别二维码
2021-08-29 09:50:38安装库 pip install opencv-python 转换代码 import cv2#导入opencv库 img=cv2.imread("csdn.png")#打开二维码...val, pts, st_code = det.detectAndDecode(img)#识别二维码 print(val)#打印识别出的链接 结果 ...安装库
pip install opencv-python转换代码
import cv2#导入opencv库 img=cv2.imread("csdn.png")#打开二维码图片 det=cv2.QRCodeDetector()#创建二维码识别器 val, pts, st_code = det.detectAndDecode(img)#识别二维码 print(val)#打印识别出的链接
结果
-
基于Python的二维码生成与识别.pdf
2021-06-28 16:28:22基于Python的二维码生成与识别.pdf -
python 识别二维码内容
2022-03-14 16:58:51python识别二维码内容的三种方法,分别是pyzbar、zbarlight和zxing。不清楚前两者之间是否底层是同一套算法。zxing的效果要强于前两个算法。 下方img是numpy格式。 pyzbar import pyzbar barcode = pyzbar.decode...python识别二维码内容的三种方法,分别是pyzbar、zbarlight和zxing。不清楚前两者之间是否底层是同一套算法。zxing的效果要强于前两个算法。
下方img是numpy格式。- pyzbar
import pyzbar barcode = pyzbar.decode(img) (x, y, w, h) = barcode.rect # barcodeData = barcode.data.decode("utf-8") barcodeType = barcode.type
- zbarlight
需要将numpy转换为PIL格式。
import zbarlight from PIL import Image img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) codes = zbarlight.scan_codes(['qrcode'], img)
- zxing
识别效果最好。
貌似需要将图像存储到本地,且不可以使用绝对路径。未详细测试,仅简单使用。
import zxing reader = zxing.BarCodeReader() barcode = reader.decode('decode.jpg')
-
基于python的二维码识别的代码
2019-08-23 16:50:42此代码是基于二维码识别的python代码,将视频中的二维码识别的数据进行解析,并在屏幕上面打印出来,并解析成为坐标的形式,最后由于要控制步进电机进行相应的操作,因此在解析挖成之后并把坐标转换成为数控编码的... -
python 摄像头二维码识别
2019-03-05 16:43:16python 摄像头二维码识别 -
Python识别二维码获取电子发票基本信息
2021-03-13 20:53:45Python识别二维码获取电子发票基本信息前言 前言 因工作需要,每月需要对大量的电子发票重命名,命名格式为发票代码_发票号码.pdf,几经尝试,发现同样是pdf格式的电子发票,使用pdfplumber读取出来的文字信息却有很...因工作需要,每月需要对大量的电子发票重命名,命名格式为
发票代码_发票号码.pdf
,几经尝试,发现同样是pdf格式的电子发票,使用pdfplumber
读取出来的文字信息却有很大不同,一些通行费发票可以很好地识别出全部内容,非通行费的电子发票却只能读取出一部分发票信息,而且最需要的发票代码和发票号码恰恰是读取不出来的。在网上一番查找之后,最终实现通过识别电子发票左上角的二维码来读取发票代码发票号码等基本信息并对pdf文件进行重命名。import os import fitz from pyzbar.pyzbar import decode from PIL import Image def get_filepath(base_path): '''获取当前路径下所有的电子发票pdf文件路径''' file_paths = [] file_names = os.listdir(base_path) for file_name in file_names: if file_name.endswith('.pdf'): file_paths.append(os.path.join(base_path, file_name)) return file_paths def rename_pdf(file_paths): '''逐一对所有电子发票文件左上角的二维码识别并重命名文件''' for file_path in file_paths: result = get_qrcode(file_path) results = list(result.split(',')) new_name = results[2] + "_" + results[3] + ".pdf" new_file_path = os.path.dirname(file_path) + '\\' + new_name os.rename(file_path, new_file_path) def get_qrcode(file_path): '''提取pdf文件中左上角的二维码并识别''' pdfDoc = fitz.open(file_path) page = pdfDoc[0] #只对第一页的二维码进行识别 rotate = int(0) zoom_x = 3.0 zoom_y = 3.0 mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate) rect = page.rect mp = rect.tl + (rect.br - rect.tl) * 1 / 5 clip = fitz.Rect(rect.tl, mp) pix = page.getPixmap(matrix=mat, alpha=False, clip=clip) img = Image.frombytes("RGB", (pix.width, pix.height), pix.samples) barcodes = decode(img) for barcode in barcodes: result = barcode.data.decode("utf-8") return result if __name__ == '__main__': base_path = os.getcwd() all_files = get_filepath(base_path) rename_pdf(all_files)
虽然功能比较单一,但是不管黑猫白猫,能抓老鼠就是好猫
-
python生成或读取二维码图片保存到word.zip
2021-11-06 15:13:23python生成文本二维码并保存到word文档 -
用OpenCV和Python识别二维码和条形码
2021-10-27 17:13:52计算机视觉专家Adrian Rosebrock近日分享了如何借助OpenCV和Zbar,编写出能够实时识别二维码和条形码的扫描程序,最后部署在树莓派上,成功制作一款实用的条形码&二维码扫描设备。 最近有朋友问我(作者... -
python+opencv二维码识别解析
2021-11-08 17:03:02python实现opencv打开摄像头识别解析二维码的功能 -
python识别二维码条形码?用pyzbar一招搞掂(含代码)!
2021-01-23 14:32:28二维码和条形码在我们的日常生活中的使用场景越来越多,使得其识别成为CV技术中的热门方向,下面介绍如何是使用 pyzbar 快速识别二维码和条形码,让您的业务快速成型。 我是 HinGwenWoong,一个有着清晰目标不停... -
python识别二维码内容
2020-03-24 17:09:45from pyzbar.pyzbar import decode from PIL import Image image = 'xx.png' img = Image.open(image) barcodes = decode(img) for barcode in barcodes: url = barcode.data.decode("utf-8") ... -
python识别二维码工具zxing
2019-10-09 15:10:10安装zxing ...识别二维码 import os import logging from PIL import Image import zxing #导入解析包 import random logger = logging.getLogger(__name__) #记录数据 if not logger.handler... -
Python如何识别二维码
2020-11-21 03:30:29今天就来看,如何用Python自动识别二维码。01. 编码首先要熟悉一套理论:什么是二维码?条形码我们都见过,这就是一种“一维码”。竖直方向上,条码是均匀的,长短也不影响,信息只在水平方向上存储。二维码的信息则... -
python zxing 二维码识别
2021-07-13 09:32:43python 调用zxing 进行二维码识别 zxing 本是java的二维码识别包,python要调用zxing就需要java的环境,java可以自己百度安装,不做过多介绍。 python需要的模块安装 pip install jpype # python调java的包 pip ... -
python-二维码的生成与识别
2021-11-29 16:06:47python-二维码的生成与识别前言一、二维码的生成引入库生成二维码二维码生成步骤:示例(生成二维码,美化并转换为QT识别的格式):二、识别二维码1.引入库安装注意二维码识别获取图像二维码,并读取数据注意... -
python 3 识别二维码中url
2022-02-11 15:40:37from pyzbar.pyzbar import decode from PIL import Image from io import BytesIO import requests as req def isQr(url): response = req.get(url) captcha = Image.open(BytesIO(response.content)...识别图片二. -
Python zxing 库(条形码二维码识别)
2017-01-10 16:19:09修改了github上zxing 的 python 实现,可以利用python语言调用jar包实现图片中的二维码条形码识别。 -
解决python pyzbar库 识别二维码中文内容乱码问题
2022-02-22 20:13:50将dll文件替换pyzbar文件夹中的dll文件,例如我将该libzbar-64.dll文件直接复制到E:\EngineeringSoftwares\Python3.9.1\Lib\site-packages\pyzbar文件夹中,并选择替换文件即可。 -
python实现二维码、条形码识别
2020-12-03 06:47:56环境:python 3.7Win7依赖包安装:pip install pillowpip install opencv-pythonpip install opencv-contrib-pythonpip install numpypip instal pyzbar首先使用cv2打开摄像头进行测试import numpy as npimport cv2... -
用 Python 生成 & 识别二维码
2020-12-08 12:21:19说到二维码大家一定不陌生,可以说现在二维码几乎渗透到了我们生活的各个角落,举例来说吧,我们到超市商场购物时扫描二维码付款,我们出行时乘坐公交地铁...我们通过 Python 生成以及识别二维码需要用到的库为:... -
python+opencv3.4.3提取二维码区域
2018-11-21 22:22:56python+opencv3.4提取图片中的二维码区域,有简单的算法思路介绍。链接 https://blog.csdn.net/kellen_f/article/details/81667315 -
python+selenium 识别二维码
2020-12-03 21:12:08python+selenium 识别二维码,运行环境是win 10 64位+python 3.5.2+selenium3.3.1。该方法可以简单识别验证码。1、搭建环境:识别验证码图片,需要安装以下三个小部件:一、安装Pillowcmd命令行cd python安装目录下... -
python使用微信开源识别二维码
2021-10-09 16:39:00要求opencv-python和opencv-contrib-python两个库,按照最新版4.5.1后 配置文件下载https://github.com/WeChatCV/opencv_3rdparty 示例代码 def __init__(self): # 腾讯开发wechat_qrcode配置文件 self.depro = ... -
python实现实时二维码解码、识别、验证
2022-03-02 20:43:35python实现实时二维码解码、识别、验证