python摄像头识别二维码_python使用pyzbar+opencv实现实时识别二维码--李渣渣(lizaza.cn)...

写东西就要写全面,前两天写了如何用python生成二维码,今天博主就给大家介绍一个识别二维码的方法。

1、安装本次开发所需要的库opencv 和pyzbar

pip install pyzbar

pip install opencv-python

2、写代码

1)导入所需的库

from pyzbar.pyzbar import decode

import cv2

2)创建一段测试代码,查看识别后的返回数据

def test():

img = cv2.imread("lizaza.png")

result = decode(img)

print(result)

3)根据需要保留对应的返回数据

def test():

img = cv2.imread("lizaza.png")

result = decode(img)

print(result)

for d in result:

print(d.data)

4)调用opencv的方法来实例化一个对象

capture = cv2.VideoCapture(0)

5)创建一个死循环实时更新摄像头所采集到的信息

while True:

# 获取图像

fet, frame = capture.read()

6)识别采集到的二维码并输出所需的数据

# 识别二维码

data = decode(frame)

for d in data:

r_data = d.data.decode("utf-8")

print(r_data)

7)显示摄像头所采集到的图像,并设置键盘监听来关闭程序

cv2.imshow("QRCode", frame)

# 设置关闭窗口

if cv2.waitKey(1) & 0xFF == ord('q'):

break

pass

3、完整代码

from pyzbar.pyzbar import decode

import cv2

capture = cv2.VideoCapture(0)

while True:

# 获取图像

fet, frame = capture.read()

# 识别二维码

data = decode(frame)

for d in data:

r_data = d.data.decode("utf-8")

print(r_data)

cv2.imshow("QRCode", frame)

# 设置关闭窗口

if cv2.waitKey(1) & 0xFF == ord('q'):

break

pass

pass

capture.release()

cv2.destroyAllWindows()

4、总结

pyzbar+opencv直接识别静态图片时无法识别倾斜的二维码,但是实时识别二维码的时候可以正常识别,博主暂时也搞不懂是啥原因。opencv如果直接使用cv.imshow()函数,窗口名中包含中文,则显示为乱码,建议还是使用英文命名。

版权声明:该文章为博主原创,如有转载请标明出处https://www.lizaza.cn

你可能感兴趣的:(python摄像头识别二维码)