二维码Aztec简介及其解码实现(zxing-cpp)
Aztec Code是1995年,由Hand HeldProducts公司的Dr. Andrew Longacre设计。它是一种高容量的二维条形码格式。它可以对ASCII和扩展ASCII码进行编码。当使用最高容量和25%的纠错级别的時候,Aztec可以对3000个字符或者3750个数字进行编码。
Aztec的矩阵大小在15 X 15和151 X 151之间变化。每个最小单位非黑即白。它独特的位于正中的模式识别标志和安置算法使Aztec看起来像个旋涡一样。
Aztec打印解决方案允许用户选择大小和纠错级别。一共有36中不同的格式供选择,此外还有19种纠错级别可供选择,默认纠错级别是5级23%。高纠错级别意味着更少的数据容量和更小的误码机会。
以下是通过zxing-cpp开源库实现的对Aztec二维码进行解码的测试代码:
#include "funset.hpp"
#include <string>
#include <fstream>#include <zxing/LuminanceSource.h>
#include <zxing/common/Counted.h>
#include <zxing/Reader.h>
#include <zxing/aztec/AztecReader.h>
#include <zxing/common/GlobalHistogramBinarizer.h>
#include <zxing/DecodeHints.h>
#include <opencv2/opencv.hpp>#include "zxing/MatSource.h"int test_Aztec_decode()
{std::string image_name = "E:/GitCode/BarCode_Test/test_images/Aztec_tableShifts.png";cv::Mat matSrc = cv::imread(image_name, 1);if (!matSrc.data) {fprintf(stderr, "read image error: %s", image_name.c_str());return -1;}cv::Mat matGray;cv::cvtColor(matSrc, matGray, CV_BGR2GRAY);zxing::Ref<zxing::LuminanceSource> source = MatSource::create(matGray);int width = source->getWidth();int height = source->getHeight();fprintf(stderr, "image width: %d, height: %d\n", width, height);zxing::Ref<zxing::Reader> reader;reader.reset(new zxing::aztec::AztecReader);zxing::Ref<zxing::Binarizer> binarizer(new zxing::GlobalHistogramBinarizer(source));zxing::Ref<zxing::BinaryBitmap> bitmap(new zxing::BinaryBitmap(binarizer));zxing::Ref<zxing::Result> result(reader->decode(bitmap, zxing::DecodeHints(zxing::DecodeHints::AZTEC_HINT)));std::string txt = "E:/GitCode/BarCode_Test/test_images/Aztec_tableShifts.txt";std::ifstream in(txt);if (!in.is_open()) {fprintf(stderr, "fail to open file: %s\n", txt.c_str());return -1;}std::string str1;std::getline(in, str1);fprintf(stderr, "actual result: %s\n", str1.c_str());std::string str2 = result->getText()->getText();fprintf(stdout, "recognization result: %s\n", str2.c_str());if (str1.compare(str2) == 0) {fprintf(stderr, "===== recognition is correct =====\n");} else {fprintf(stderr, "===== recognition is wrong =====\n");return -1;}in.close();return 0;
}
测试图像如下:
测试结果如下:
GitHub:https://github.com/fengbingchun/Barcode_Test
二维码Aztec简介及其解码实现(zxing-cpp)相关推荐
- 二维码PDF417简介及其解码实现(zxing-cpp)
二维码PDF417是一种堆叠式二维条码.PDF417条码是由美国SYMBOL公司发明的,PDF(Portable Data File)意思是"便携数据文件".组成条码的每一个条码字 ...
- 二维码的妙用:通过Zxing实现wifi账号password分享功能
二维码是搭载信息的一种载体,通过二维码能够传递名片.网址.商品信息等,本文讲到二维码的第二种妙用:通过二维码实现wifi账号和password分享. 关于二维码的基础知识,请訪问:二维码的生成细节和原 ...
- 二维码的妙用:通过Zxing实现wifi账号密码分享功能
二维码是搭载信息的一种载体,通过二维码可以传递名片.网址.商品信息等,本文讲到二维码的另外一种妙用:通过二维码实现wifi账号和密码分享. 关于二维码的基础知识,请访问:二维码的生成细节和原理 试想这 ...
- python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程
一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...
- ZXing 生成二维码 QRCode 和条码 CODE128 和 ZXing 解析或读取 QR_Code 和 条码 CODE_128
二维码是国际标准,由日本某公司发明,并保留版权,免费让全世界使用,目前在中国金融支付领域大放异彩. 条码的联合发明人诺曼·约瑟夫·伍德兰德(Norman Joseph Woodland)于上世纪70年 ...
- 二维码Data Matrix的解码实现(zxing-cpp)
二维码Data Matrix的介绍可以参考http://blog.csdn.net/fengbingchun/article/details/44279967 ,以下是通过zxing-cpp开源库实现 ...
- zxing二维码的生成与解码(C#)
ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台下的客户端包括:J2ME.J2SE和An ...
- java 二维码原理以及用java实现的二维码的生成、解码
QR码生成原理(一) 一.什么是QR码 QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化.QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示 ...
- 基于opencv3.0和zbar下条形码和二维码的识别与解码
其中对条码与二维码的识别分为以下4个步骤 1. 利用opencv和Zbar(或者Zxing)对标准的条形码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. 2 ...
最新文章
- Flutter 28: 图解 ListView/GridView 混用时滑动冲突小尝试
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- boost::multi_array模块实现在矩阵上测试切片
- 【收集】6410 开发板(Real6410/TE6410/OK6410/mini6410/micro6410/FL6410)wince问题
- 非递归遍历二叉树(算法导论第三版第十章10.4-5)
- 作者:张鹏(1993-),男,国防科学技术大学并行与分布处理重点实验室硕士生...
- 3dcaptcha php,php实现的Captcha验证码类实例
- linux删除位于后台的进程组,linux命令(12)-进程与作业管理
- 新风口?人造肉第一股表现强劲 股价累计上涨近600%
- 线性代数的本质-20160614总结
- 如何转型成为一家真正发挥大数据作用的 “数据驱动型公司”?
- linux内核之设备驱动
- JDBC原生连接与连接池介绍
- Java代理模式——CGLIB动态代理
- QT学习笔记(十五):QLabel的点击事件(clicked)添加
- 数据库时间相减_SQL 日期相减(间隔)datediff函数,
- java学习之高级语法(二十八)----- 网络编程
- python 求3位数的水仙花数_python 求3到8位数的水仙花数Pycharm实现
- 基于小程序开发的藏书馆
- 微信公众号怎么添加附件?
热门文章
- pytorch量化感知训练(QAT)示例---ResNet
- 基于pytorch的模型压缩和模型剪枝Model Prune示例
- python 显示gif图像
- 【机器视觉案例】(11) 眨眼计数器,人脸关键点检测,附python完整代码
- Linux改变输出字体颜色,linux下 C编程改变输出字体颜色
- python建站与java建站有何不同_详解模板建站和定制建站的不同之处
- webstorm设置TSlint格式化TypeScript代码快捷键Alt+X
- 安装vim-go插件之后遇到的gopls警告信息不消失的问题的解决方法
- 在CentOS 6.8 x86_64上安装ATS 6.2.1实录
- 在CentOS 6.3/6.5 64bit上为python 2.7.10安装pycurl模块