树莓派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识别二维码的例程,即可正确识别带有中文的二维码了

猜你喜欢

转载自www.cnblogs.com/vzyk/p/11979315.html