以下均基于Python3,3对应的软件是pyzbar,python2对应的软件的zbar,不要安装错了,因为3已经不支持zbar,很多教程还在讲zbar,但是已经不支持了,无法使用。
~$ sudo apt-get install libzbar-dev
~$ pip install pyzbar
//安装完成后----
~$ python3
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>import pyzbar
//如果没有报错,说明安装成功
安装OpenCV教程:
https://blog.csdn.net/wgshun616/article/details/83383538
上面的教程我记得是可以用的。
相信大家已经安装完硬件了。
python代码存在缩进问题,如果报错 大概率是缩进存在问题
代码如下(示例):
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
while(True):
ret, frame = cap.read()
frame = cv2.flip(frame, -1)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', frame)
cv2.imshow('gray', gray)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
#cap.realse()
#cv2.destroyALLWindows()
以上文件命名为:cameraRT.py
~$ python cameraRT.py
不出意外,你已经可以看见实时视频了。
此时证明该摄像头无误。
代码如下:
代码来源:https://blog.csdn.net/qq_42109746/article/details/88233758
import cv2
import pyzbar.pyzbar as pyzbar
def detect():
camera = cv2.VideoCapture(0)
while True:
ret, frame = camera.read()
barcodes = pyzbar.decode(frame) # 解析摄像头捕获到的所有二维码
data = ''
# 遍历所有的二维码
for barcode in barcodes:
data = barcode.data.decode('utf-8') # 对数据进行转码
if data != '':
with open('data.txt', 'w') as file:
file.write(data)
break
if cv2.waitKey(1) == ord('q'):
break
cv2.imshow('', frame)
camera.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
detect()
以上文件命名为:find.py
同时在find.py的目录创建一个data.txt文件用于存储识别数据。
~$ touch data.txt
~$ python find.py
不出意外,已经在开始识别了。
此刻可以拿出你的wx二维码出来,对向摄像头,识别成功后,视频窗口会自动关闭,然后打开data.txt会看到识别内容。