樹莓派3B+,OpenCV,USB攝像頭中文二維碼識別


最近做一個項目,用樹莓派和USB攝像頭識別帶有中文信息的二維碼並且將信息在oled屏幕顯示,本來以為難度不大,沒想到遇到了不少麻煩,現在項目做完了,回過頭來復盤一下

主要參考的博客有:

二維碼識別部分:https://blog.csdn.net/sinat_35162460/article/details/90245448  、https://blog.csdn.net/zx66zx/article/details/82785334

掃描信息在oled屏幕顯示:https://blog.csdn.net/wangzhenyang2/article/details/80299625

 

二維碼的識別我們考慮使用zbar、pyzbar和OpenCV,在python2.7和python3.5環境中均可以運行

zbar是用於從各種來源讀取條形碼的開源套件,在這里就不詳細介紹了

首先搭建樹莓派上的環境

一、安裝zbar

方法一、使用命令行:sudo apt-get install python-zbar

方法二、使用源碼安裝zbar,此方法可以識別中文

1、使用wget命令從指定的URL下載zbar源碼:

wget http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz

2、解壓zbar的源文件,解壓至pi目錄下的zbar-0.10文件夾

tar -zvxf zbar-0.10.tar.gz

3、安裝編譯時需要編譯器,安裝python-gtk和libqt4-dev

sudo apt-get install python-gtk2-dev

sudo apt-get install libqt4-dev

4、修改zbar的中文支持

cd進入zbar-0.10/zbar/qrcode目錄,使用nano編輯器打開qrdectxt.c文件

cd zbar-0.10

cd zbar

cd qrcode

sudo nano qrdectxt.c

找到默認編碼函數,將ISO8859-1換成UTF-8

找到默認編碼定義的list,修改解碼編碼順序為:

enc_list[0]=utf8_cd 

5、進入zbar-0.10文件夾,運行configure命令如下,生成makefile

./configure --without-imagemagick -disable-video -without-qt -without-gtk -without-x

6、編譯makefile

make

7、make安裝

sudo make install

安裝完成后進入python環境import zbar,發現無法在python中import到

解決辦法:編譯安裝完成后,將usr/local/lib文件夾下與zbar有關的三個.so文件移動到/lib/arm-linux-gnueabihf下,這樣python調用zbar庫就不會報錯

二、安裝pyzbar

使用命令行安裝pyzbar

sudo pip install pyzbar

三、安裝OpenCV

參考https://blog.csdn.net/sinat_35162460/article/details/84245240

 

再使用python識別二維碼的例程,即可正確識別帶有中文的二維碼了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM