二维码、条形码识别

一. 场景介绍

二维码和条形码包含很多信息,对二维码和条形码识别对信息抽取具有重要意义。下面介绍两种二维码识别的方法,并用python实现。

二. 代码实现

import os
import cv2
from cv2.wechat_qrcode import WeChatQRCode
from pyzbar import pyzbar
import time

"""
sudo apt-get install libzbar-dev
pip install zbar
"""
fream = cv2.imread("test.png")
start=time.time()
for i in range(1000):
    decocdeQR = pyzbar.decode(fream)
    res = decocdeQR[0].data.decode('utf-8')
end = time.time()
print("time:", end-start)
print("zbar的识别结果:")
print(res)




detector = WeChatQRCode(detector_prototxt_path="qr_mode/detect.prototxt",
                        detector_caffe_model_path="qr_mode/detect.caffemodel",
                        super_resolution_prototxt_path="qr_mode/sr.prototxt",
                        super_resolution_caffe_model_path="qr_mode/sr.caffemodel")
img = cv2.imread("test.png")
start=time.time()
for i in range(1000):
    res, points = detector.detectAndDecode(img)
end=time.time()
print("time:", end-start)
print("微信的识别结果:")
print(res)

请添加图片描述
在终端的显示如下:

time: 2.875035285949707
zbar的识别结果:
http://fs.hncz.gov.cn:8094//EivcCheckH5?payer=螳牙サカ邇イ&ivccode=41060223&ivcno=0000555268&ckno=2bae01
time: 3.0192439556121826
微信的识别结果:
('http://fs.hncz.gov.cn:8094//EivcCheckH5?payer=安延玲&ivccode=41060223&ivcno=0000555268&ckno=2bae01',)

三. 其它对比

从上面的结果可以看到,加上博主的大量测试,得出以下结论:

  • 微信和zbar对二维码的识别耗时在3ms左右;
  • zbar对中文的支持不太友好;
  • zbar还能识别条形码;
  • 微信识别二维码的成功率更高。

思考:

  1. 在国内,用微信的二维码识别算法会更好;
  2. 微信的二维码识别算法也有缺陷,博主适配了业务场景,识别成功率大幅提升。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值