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() #删除所有窗口
因为写了很久,忘了都有缝合谁的了,基本每一句都有解释,就不需要多余的文字叙述了。