python发票二维码条码识别_pyzbar 二维码、条形码识别

利用python的第三方模块 pyzbar 可以很方便的进行二维码的识别(也能识别条形码,用法别无二致)。

下面的自定义函数会将图像中识别出的条形码或者QR二维码给圈出来,并给出识别结果:from pyzbar import pyzbar

import cv2

import numpy as np

def image_detect(img):

QRdetecter = cv2.QRCodeDetector()

barcodes = pyzbar.decode(img)

#print(barcodes)

for barcode in barcodes:# 循环读取检测到的条形码

# 绘条形码、二维码多边形轮廓

points =[]

for point in barcode.polygon:

points.append([point[0], point[1]])

points = np.array(points,dtype=np.int32).reshape(-1,1, 2)

cv2.polylines(img, [points], isClosed=True, color=(0,0,255),thickness=2)

# 条形码数据为字节对象,所以如果我们想把它画出来

# 需要先把它转换成字符串

barcodeData = barcode.data.decode("UTF-8") #先解码成字符串

barcodeType = barcode.type

# 绘出图像上的条形码数据和类型

text = "({}): {} ".format(barcodeType, barcodeData )

print(text)

#cv2.putText(img, text, (x, y - 10),cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)

cv2.imshow("QR", img)

cv2.waitKey(0)

cv2.destroyAllWindows()

一维条形码的识别:img0 = cv2.imread("bar.jpg")

image_detect(img0)

识别结果:(CODE128): 01950123456789033102000400

注意:类型CODE128代表条形码。

普通二维码的识别:img2 = cv2.imread("test.png")

image_detect(img2)

识别结果:(QRCODE): 有一天

一只青蛙亲了兔子一口撒腿就跑

兔子紧追

青蛙情急之下跳进了池塘

不一会儿

一只癞蛤蟆爬了出来

兔子大笑:哈哈,过敏了吧!

注意:类型QRCODE代表QR二维码。

旋转的二维码的识别:img2 = cv2.imread("rotated.png")

image_detect(img2)

识别结果(2个):(QRCODE): Thalassiodracon

(QRCODE): Thalassiodracon

倾斜的二维码的识别:img3 = cv2.imread("qx.jpg")

image_detect(img3)

识别结果:(QRCODE): http://ma.taobao.com/r/cs-uqxohnmy9z_UK2pJxseigTyHqA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值