(其中opencv 4.0.1以及3.4.5 已經集成了二維碼識別,cv.QRCodeDetector().detect(frame),可以不用pyzbar)
一.pyzbar安裝
sudo apt-get update
sudo apt-get install python3-pip python3-dev
sudo pip3 install --upgrade pip
sudo apt-get install libzbar-dev
sudo pip3 install pyzbar
驗證:
運行python3
執行:from pyzbar.pyzbar import decode
沒報錯,就ok
二.opencv安裝
1.下載源碼
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
2.安裝構建OpenCV的相關工具:
sudo apt-get install build-essential -y
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
3.安裝numpy (嘗試下sudo pip3 install numpy 如果報錯按照下面執行)
1).源碼下載
wget https://files.pythonhosted.org/packages/2d/80/1809de155bad674b494248bcfca0e49eb4c5d8bee58f26fe7a0dd45029e2/numpy-1.15.4.zip
2).解壓
unzip numpy-1.15.4.zip
3).編譯
cd numpy-1.15.4
sudo python3 setup.py install (如果你arm處理器差,可能編譯到一半,就卡死了。可以用 <sudo python3 setup.py build -j 4 install> 數字4表示開啟4個線程,如全志h3 -j4都卡住,就-j 1或者2 都可以,就編譯的慢點罷了 )
4.在opencv中構建環境
cd opencv
mkdir release/
cd release/
cmake -D BUILD_opencv_python3=YES -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_LIBV4L=ON -D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules -D PYTHON3_LIBRARIES=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/dist-packages/numpy/core/include/ ..
(對應的位置自己去找)
5.編譯
sudo make (如果你arm處理器好的話,比如rk3399 ,sudo make -j8或16都可以;處理器差的話,就比如全志h5之類的,就直接sudo make -j4,或者不加默認是一個線程編譯)
6.安裝並更新動態庫
sudo make install
sudo ldconfig
7.驗證
運行python3,輸入 import cv2,沒有報錯就ok了
三.測試代碼
from pyzbar.pyzbar import decode import cv2 import os image = cv2.VideoCapture(0) x = True while x: ret, frame = image.read() a = decode(frame) if len(a): print(a[0].data.decode('utf-8'))