Opencv识别/定位QRcode(二维码)

一、依赖安装

1.pyzbar 是什么?

首先需要了解下 ZBar:ZBar是一个开源软件套件,用于从各种来源(如视频流、图像文件和原始强度传感器)读取条形码。它支持许多流行的符号(条形码类型),包括EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5和二维码。而 pyzbar 是通过 Python2和3接口,使用ZBar 库读取一维条形码和QR码 。

2.安装

pip install pyzbar

3.模块功能

(1)该模块是一个日本的author开源的一个二维码检测的项目,可以用来检测:二维码、条形码。同时可以返回检测二维码和条形码的相关信息:二维码中包含的信息;检测二维码的矩形框;检测二维码的最小外接多边形框
(2)pyzbar支持两种数据类型输入:PIL读取的PIL.Image数据类型,opencv读取的ndarray数据类型

 二、代码

author = "skyfly"
email = "tianxianghuang@whut.edu.cn"

import cv2
from pyzbar.pyzbar import decode
import webbrowser


img = cv2.imread("qrcode_1.png")
cap = cv2.VideoCapture(0)

data = ['link']

while True:
    success ,img = cap.read()
    QR_code = decode(img)
    #print(QR_code)

    for QR in QR_code:
        QR_data = QR.data.decode('utf-8')

        if(QR_data != data[-1]):
            data.append(QR_data)
            webbrowser.open(QR_data)
            print(data)

        #point = QR.rect
        #print(point)

        #画矩形框和添加文字
        cv2.rectangle(img,(point[0],point[1]),(point[0]+point[2],point[1]+point[3]),(100,0,100),3)


        cv2.putText(img,QR_data,(point[0],point[1]-5),cv2.FONT_HERSHEY_COMPLEX_SMALL,0.6,(100,0,0),1)


    cv2.imshow("output",img)

    if cv2.waitKey(1) & 0xFF == 27:
        break

 三、效果

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyfly丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值