import cv2 #调用cv2库
from pyzbar import pyzbar #调用pyzbar条形码识别库
fa=set() #建立不重复集合fa
flag=0
def scan_qrcode(qrcode): #解码用子函数
datas = pyzbar.decode(qrcode)
for tests in datas:
testdate = tests.data.decode('utf-8') #对条形码信息解码
testtype = tests.type #读取条形码信息
printout = "{} ({})".format(testdate, testtype)
if testdate not in fa: #判断新识别到的信息是否已经存在
print(printout) #打印到对话框
if testdate not in fa: #判断新识别到的信息是否已经存在
with open("E:/chengxu/01.txt", "a+") as f: #文档地址
f.write(testdate+'\n') #将信息写入文档
f.close() #关闭文档
fa.add(testdate) #将信息写入不重复集合fa
#主程序
cap = cv2.VideoCapture(0)
#打开摄像头
while True:
ret, frame = cap.read() #显示当前帧
cv2.imshow('video', frame)
# 解析二维码
text = None
try:
text = scan_qrcode(frame) #将截取的图片送入子函数解码
except Exception :
pass
if text:
print(text)
break
key = cv2.waitKey(10) #设置显示框停留时间
if key == ord('q'): #键盘Q为关键点,关闭摄像头
break
c= cv2.waitKey(30) & 0xff
if c==27: #键盘esc为关键点,退出程序识别
cap.release()
break
cv2.destroyAllWindows() #删除所有窗口
因为写了很久,忘了都有缝合谁的了,基本每一句都有解释,就不需要多余的文字叙述了。