小沃最近做一个需要通过嵌入式linux实现对图片中的二维码进行扫描的程序。通过网上查询,使用最多的库是zbar,但是查阅zbar的github发现,该库已经有12年没更新了,担心由于12年前二维码使用并不频繁,因此二维码更新技术不够先进。
后续通过命令行工具zbarimg测试性能,果然效果稀烂。同时测试了下nodejs,go以及python语言中最主流的qrcode测试工具,发现一样的烂。
通过在网上查找,发现zxing同样是网上推崇的二维码识别工具,最近一次发行版是在半年前,最近一次更新是在3周前,唯一不足的是zxing是java库,java的运算性能本身不如C,而且本次需求是要迁移到arm linux上,因此对运算性能有一定要求。
在搜索zxing的过程中,发现了zxing-cpp这个库,是zxing的C++移植版。经过测试,识别性能很好,在此给大家讲讲如何编译它。
源码地址为https://github.com/zxing-cpp/zxing-cpp,建议下载本文发布时的最新发行版v2.2.1。
解压并将文件夹改名为zxing-cpp
然后安装编译依赖如下:
apt-get install cmake make gcc g++ -y
运行下方命令:
cmake -S zxing-cpp -B zxing-cpp.release -DCMAKE_BUILD_TYPE=Release cmake --build zxing-cpp.release -j8 --config Release
最后进入zxing-cpp.release并运行命令
make install
生成的文件在zxing-cpp.release/example下,解析二维码的是ZXingReader,生成二维码的是ZXingWriter,可以直接使用哦。
文章作者:沃航科技