1、生成二维码
import qrcode
data = 'https://www.baidu.com/'
filename = 'QRcodelearn.png'
img = qrcode.make(data)
img.save(filename)
2、读取二维码
import cv2
import numpy as np
img = cv2.imread('QRcodelearn.png')
detector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = detector.detectAndDecode(img)
print(bbox[0])
bbox = bbox.astype(np.uint64)
print(bbox[0])
if bbox is not None:
print(f'二维码的数据是:{data}')
n_lines = len(bbox[0])
for i in range(n_lines):
point_1 = tuple(bbox[0][i])
point_2 = tuple(bbox[0][(i+1) % n_lines])
cv2.line(img, point_1, point_2, color=(255, 0, 0), thickness=2)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3、用摄像头识别二维码
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
detector = cv2.QRCodeDetector()
while True:
_, img = cap.read()
data, bbox, _ = detector.detectAndDecode(img)
if bbox is not None:
bbox = bbox.astype(np.uint64)
for i in range(len(bbox[0])):
cv2.line(img, tuple(bbox[0][i]), tuple(bbox[0][(i+1) % len(bbox[0])]), color=(255, 0, 0), thickness=2)
if data:
print('数据是:', data)
cv2.imshow('摄像头拍摄', img)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()