前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pyzbar 二维码、条形码识别

pyzbar 二维码、条形码识别

作者头像
用户6021899
发布2019-10-09 16:26:37
5.1K0
发布2019-10-09 16:26:37
举报

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

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

代码语言:javascript
复制
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()

一维条形码的识别:

代码语言:javascript
复制
img0 = cv2.imread("bar.jpg")
image_detect(img0)

识别结果:

代码语言:javascript
复制
(CODE128): 01950123456789033102000400

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

普通二维码的识别:

代码语言:javascript
复制
img2 = cv2.imread("test.png")
image_detect(img2)

识别结果:

代码语言:javascript
复制
(QRCODE): 有一天
一只青蛙亲了兔子一口撒腿就跑
兔子紧追
青蛙情急之下跳进了池塘
不一会儿
一只癞蛤蟆爬了出来
兔子大笑:哈哈,过敏了吧!

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

旋转的二维码的识别:

代码语言:javascript
复制
img2 = cv2.imread("rotated.png")
image_detect(img2)

识别结果(2个):

代码语言:javascript
复制
(QRCODE): Thalassiodracon
(QRCODE): Thalassiodracon

倾斜的二维码的识别:

代码语言:javascript
复制
img3 = cv2.imread("qx.jpg")
image_detect(img3)

识别结果:

代码语言:javascript
复制
(QRCODE): http://ma.taobao.com/r/cs-uqxohnmy9z_UK2pJxseigTyHqA
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档