引言

上篇文章介绍了使用Quirc解析二维码,Quirc是一个轻量级的二维码解析库,效率太低,不符合使用条件,作者使用Zbar来进行二维码的解析。Zbar算法是现在网上开源的条形码,二维码检测算法,这几种算法的对比主要看这一篇文章,文章表明Zbar的效率远高于Quirc,经过作者的实验,Zbar在作者的嵌入式门禁中解析一张二维码仅需要500ms,远高于Quirc,以后在进行二维码实验时,推荐使用Zbar进行解析。Zbar支持多种语言,本文使用C语言进行开发。

使用方法

下图为从官网下载下来的完整的Zbar库,在window下移植只需要zbar文件夹下的文件

在VS2019中建立项目,这是文件列表


将这些文件添加到项目中,进行编译,附赠一份自己写的例子,自己使用的时候按照这个思路进行编写即可。

#include <stdio.h>
#include "image.h"
#include "zbar.h"#define width 720
#define height 1280
#define gray_size width*heightint main()
{FILE* in_file = NULL;uint8_t* in_buf;zbar_image_scanner_t* rt_scanner = NULL;in_file = fopen("E:\\QRcode\\qr_REGY.raw", "rb");if (in_file == NULL) {printf("cannot open!!!!! \n");}else {printf("success open !!!!\r\n");}in_buf = (uint8_t*)malloc(gray_size);fread(in_buf, gray_size, 1, in_file);/* wrap image data */zbar_image_t* image = zbar_image_create();zbar_image_set_format(image, fourcc('Y', '8', '0', '0'));zbar_image_set_size(image, width, height);zbar_image_set_data(image, in_buf, gray_size, zbar_image_free_data);/* create a reader */rt_scanner = zbar_image_scanner_create();/* configure the reader */zbar_image_scanner_set_config(rt_scanner, ZBAR_NONE, ZBAR_CFG_ENABLE, 1);/* scan the image for barcodes */int n = zbar_scan_image(rt_scanner, image);printf("QRcode num is %d!!!!\r\n", n);/* extract results */const zbar_symbol_t* symbol = zbar_image_first_symbol(image);/*zbar_symbol_type_t typ = zbar_symbol_get_type(symbol);const char* data = zbar_symbol_get_data(symbol);printf("decoded %s symbol " "%s\n", zbar_get_symbol_name(typ), data);*/#if 1 for (; symbol; symbol = zbar_symbol_next(symbol)) {/* do something useful with results */zbar_symbol_type_t typ = zbar_symbol_get_type(symbol);const char* data = zbar_symbol_get_data(symbol);printf("decoded %s symbol " "%s\n",zbar_get_symbol_name(typ), data);}
#endif/* clean up */zbar_image_destroy(image);zbar_image_scanner_destroy(rt_scanner);//printf("hello\r\n");return 0;
}

结语

通过这两个库的使用对图片以及二维码的解析基本解决,Zbar在测试中仅需500ms即可处理一张720*1280的二维码图,效率可以满足设备需要,一些图片的知识以及踩坑,查看上篇文章,这两周会中断一下嵌入式,为公司写一个发明专利,有问题可以留言交流。

嵌入式使用Zbar解析二维码相关推荐

  1. python解析二维码_python解析二维码

    由于需要对二维码图片进行解析,操作环境是centos7.2,python版本是2.7.5,由于zbar只支持到Python2.6,所以准备采用源码编译安装的方式.具体步骤如下: 1.安装依赖包 yum ...

  2. C/C++使用Quirc库解析二维码(QRcode)

    C/C++使用Quirc库解析二维码 Quirc介绍 Quirc库使用 遇到的坑 整理的知识点 总结 Quirc介绍 Quirc是一个基于C/C++的一个二维码库,其在码云上的官网 https://g ...

  3. 使用摄像头解析二维码,且可以生成含具体信息的二维码

    开源一份早些时候写过的代码,关于二维码在PC端的应用. 二维码的具体应用范围,这里不详述. 之前项目主要用于朋友一个牙科的平台,不过后面没有采用,也就没有往后继续开发,大家要是觉得有意思,可以自己拿去 ...

  4. 使用zbar识别二维码

    目录 1 说明 2 软件获取 3 在Windows下使用zbar 4 在Linux PC(Ubuntu Server 1604 64位)下使用zbar 4.1 无内存泄漏的示例代码 5 在ARM Li ...

  5. 【Python3解析二维码】翻遍全网找到 2 款库推荐给大家~

    文章目录 ⛳️ 实战场景 ⛳️ pyzbar 解析二维码 ⛳️ cv2 解析二维码 总结 ⛳️ 实战场景 上一篇博客,我们整理了 4 款 Python 二维码模块,发到社群之后,有小伙伴反馈非常棒,那 ...

  6. Zxing与 Zbar生成二维码最简单的实现方式

    Zxing与 Zbar生成二维码最简单的实现方式 导入依赖 implementation 'cn.bingoogolapple:bga-qrcode-zbar:1.2.1' 或者 implementa ...

  7. asp.net C#生成和解析二维码代码

    类库文件我们在文件最后面下载 [ThoughtWorks.QRCode.dll 就是类库] 使用时需要增加: using ThoughtWorks.QRCode.Codec; using Though ...

  8. java生成二维码/java解析二维码

    二维码的优缺点 优点:1. 高密度编码,信息容量大:2.编码范围广:3.容错能力强:4.译码可靠性高:5.可引入加密措施:6.成本低,易制作,持久耐用. 缺点:1.二维码技术成为手机病毒.钓鱼网站传播 ...

  9. opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量

    一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像中的细节信息也主要集中在其高频部分,因此,如何去掉高频干扰同时又保持细节信息是关键.为了去除噪声,有必要对图像进行平滑,可 ...

最新文章

  1. trie树上值域化建主席树 查询异或平移最小值 ---- P3293 [SCOI2016]美味
  2. 人对光波的三种特性_花友小叶投稿:养花一年了,三种绿植基本不用管,没光也不怕...
  3. Android Stdio 插件谷歌兼容库Appcompat
  4. 下载服务器 linux系统,如何搭建Linux服务器
  5. boost::outcome模块outcome相关的测试程序
  6. 2015-03-17 how is task transaction type retrieved
  7. POJ 1811 Prime Test (Rabin-Miller强伪素数测试 和Pollard-rho 因数分解)
  8. C++中如何读取一个数的位数_求1000以内的水仙花数
  9. Linux debian安装Typora教程
  10. JSP页面之前传输 中文乱码
  11. Spring Boot学习总结(23)——Spring Boot 实践经验总结
  12. python输出名片_Python的格式化输出--制作名片
  13. 要走路~先要有一雙最舒適的鞋
  14. 《神探tcpdump第八招》-linux命令五分钟系列之四十二
  15. 翻译:MySQL Got an Error Reading Communication Packet Errors
  16. 串口连接设置超级终端管理交换机
  17. Rhino(犀牛)的视口
  18. python 使用 python-socketio 400 错误
  19. 字节跳动工程师收入世界第五,2021年全球程序员收入报告出炉
  20. Qt:图标刷新自动旋转

热门文章

  1. cms系统自己建网站其实很简单
  2. google退出中国声明原文【翻译版】
  3. google浏览器打开不久自动退出
  4. centOS下,怎么能快速锁屏
  5. 办公计算机锁屏方法,电脑快速锁屏,办公室神技能,再也不怕别人看我的电脑了!...
  6. arcpy投影(三)——定义投影、地理变换关系自定义和投影变换Project_managemen(含基准面/椭球体转换参数使用方法,arcpro/arcmap)
  7. 美国访学的一些心得体会与注意事项
  8. 利用TCGA癌症基因进行差异分析
  9. 骑行318、 2016.7.20
  10. 多层交换机静态路由实验