一、依赖安装
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