红孩儿二维码
理论加实践
王伟1982
我是数据分析与处理行业的数据采矿工,软件业的代码搬运工,通信业的协议打包工,互联网业的安全检查工
展开
-
二维码解码程序的两大难点问题
二维码解码程序的两大难点问题第一是如何对摄像头捕捉的PNG格式的图像数据进行解析,以及识别黑白模块的问题第二是RS编码的纠错算法过程。对PNG格式的解析,需要参考PNG格式的规范。识别黑白块要参考国标GB/T18284对于RS编码的纠错算法,要了解伽罗华域的计算过程。...原创 2021-04-13 23:06:02 · 360 阅读 · 0 评论 -
初识二维码 第二十讲 二维码解码程序的组件之一 摄像头拍照功能
初识二维码 第二十讲 二维码解码程序的组件之一 摄像头拍照功能解码程序的第一个环节是通过摄像头这个硬件,得到二维码的图片。对摄像头的工作原理来说,简单的描述如下:1是从摄像头得到模拟信号,2实现模数转换。3生成视频格式的文件。实现的方式有 利用HTML5的API,FFmpge框架的API,操作系统的API还有直接调用摄像头驱动程序提供的API。已经测试验证了HTML5的方式。请参考 利用HTML5 API接口实现调用摄像头拍照功能 的代码。我测试了这个代码在IE浏览器下无反应。在f...原创 2021-04-11 22:56:11 · 365 阅读 · 0 评论 -
初识二维码 第十九讲 二维码生成的引擎系统的开发总结
初识二维码 第十九讲 二维码生成的引擎系统的开发总结目前只实现了系统的生成二维码的功能,二维码图片的解码功能正在开发中。有图有真相。下面给出生成的二维码的截图为证。软件生成的二维码与firefox浏览器生成的标准二维码图片是完全一致的。系统的开发架构如下图所示:make_qr_code.html 的测试用的主页面code_translation.js 实现编码方式的转换quwei_to_unicode_map.js 这是区位码与unicode的映射表的文件com_red...原创 2021-04-10 21:46:18 · 435 阅读 · 0 评论 -
初识二维码 第十八讲 编码转换
初识二维码 第十八讲 编码转换在javascript 的网页上使用Unicode编码,二维码的扫码支持的是GB2312的汉字编码方式。因此 存在如下图的所示的编码转换的过程:为了实现文章的二维码生成,不仅要实现汉字的编码转换,还要实现,例如中文模式下的逗号句号,冒号等标点符号的编码转换。英文的标点符号的转换也需要实现。在Unicode的编码规则之下,英文符号的Unicode编码与ASCII编码是一致的。这是为了与ASCII保持兼容性。英文字母的ASCII编码加上0xA380,就是机内码的.原创 2021-04-09 20:29:21 · 773 阅读 · 0 评论 -
初识二维码 第十七讲 备份,再备份
初识二维码 第十七讲 备份,再备份备份一瞬间,幸福一百年。对于程序员来说,人生最痛苦的是什么?程序没有备份,机器故障,一切从头再来。程序员们必须尊重自己的劳动成果,应该养成天天备份的好习惯。工作日志必须记录完整。这是工作的成果之一。备份的内容包括源代码,以及需求分析,架构设计,算法设计,软件使用说明等文档,还有测试用例和测试结果数据。还有安装用的脚本。有人马上会告诉我,可以使用版本控制系统和Bug追踪系统来完成软件工程中的管理工作。备份是应对故障,从数据损失中恢复的安全性的需求。使用版本.原创 2021-04-08 23:12:40 · 87 阅读 · 1 评论 -
初识二维码 第十六讲 程序开发中的向后兼容性
初识二维码 第十六讲 程序开发中的向后兼容性当程序开发达到一定的规模时,新的设计与原来的设计有冲突是不可避免的。如何处理老代码,是完全重构,还是原封不动,一点也不修改呢?例如协作方特别多的API接口以稳定性为主,必须兼容原来的设计,但是新的程序使用新的接口,老的程序使用老的接口。特别强调兼容性,还有CPU的指令,操作系统的api等。系统底层的数学代码库也非常强调兼容性。甚至要与C语言的函数名称等保持一致性,以降低应用程序员的学习成本。对于应用性程序,由于软件的生命周期很短,旧的代码很快.原创 2021-04-07 23:19:04 · 143 阅读 · 2 评论 -
初识二维码 第十五讲 规范的重要性与设计的一致性
初识二维码 第十五讲 规范的重要性与设计的一致性规范的目的是保证设计的一致性,保证整体上的协调。越是在开发后期,无法调整的设计原则与设计细节,越是需要在开发前期,进行认真地进行规范,以消除过多的选择自由度。设计上的一致性,是保持问题最简化的方式方法之一。设计上的一致性的丧失,会导致局面出现混乱,问题的复杂性成倍增长。这是编程时的逻辑错误发生的一个主要的来源。例如在 第十三讲 数据块内部的布局 中 的图形的情况。针对数据块形状与方向的编号,应该有规范的约束。按照形状进行分组,按照方原创 2021-04-06 21:26:30 · 150 阅读 · 0 评论 -
初识二维码 第十四讲 数据序列的分块编码
初识二维码 第十四讲 数据序列的分块编码根据国标,表9的信息,二维码从第三版本开始需要对数据序列分成多个数据块,对于每个数据块分别使用RS编码。例如5H版本的情况如下图:版本7H符号字符布置图如下:...原创 2021-04-05 22:15:58 · 284 阅读 · 0 评论 -
初识二维码 第十三讲 数据块内部的布局
初识二维码 第十三讲 数据块内部的布局在二维码的编码流程中,第五步是:在矩阵中布置模块。第三讲中介绍了数据块与数据块之间的布局情况,本讲详细地说明每个数据块内部的8个小模块的位置关系,它们的布局情况也是比较复杂的。由于定位线的分隔作用,加上定位块的排挤作用,导致数据块的情况有十多种。还有方向上的分别。其中的几种情况见下图:...原创 2021-04-04 22:42:18 · 163 阅读 · 0 评论 -
初识二维码 第十二讲 中国汉字的模式
初识二维码 第十二讲 中国汉字的模式中国的汉字的模式问题,首先涉及到的第一个问题是编码方式的问题。在浏览器中输入的汉字,在javascript编程语言中,会显示为unicode的编码方式。需要先转换成区位码再转换成机内码。再根据国标的要求,生成十三位的二进制的比特流。如下图所示:...原创 2021-04-03 23:39:19 · 538 阅读 · 0 评论 -
初识二维码 第11讲 里得所罗门纠错算法 也叫Reed-Solomon码的编码
初识二维码 第11讲 里得所罗门纠错算法 也叫Reed-Solomon码的编码类似于BCH编码,RS码通过生成(irreducible generator)和分解(dividing)多项式来表达信息,分解余下的多项式(remainder)就是RS码,最后我们将RS码附加在原信息后。BCH编码乃至其它大多数的纠错码编码原则是:采用有限的字典(limited dictionary)存储差异最大的信息元,越长的信息元差异往往越大。在上述RS编码方式中,我们通过将RS码后缀在原信息码后面的方式,加长.原创 2021-04-03 00:12:44 · 1470 阅读 · 0 评论 -
初识二维码 第十讲 二维码的人眼识别部分
初识二维码 第十讲 二维码的人眼识别部分首先能够用人工的方法把二维码识别出来,然后才能够把相关的方法用代码进行自动化执行。在自动化识别的过程中,把图像识别如下01的二维数组的过程中,最容易出错。在二维数组的基础上,进行后序的操作几乎没有出错的可能性。当二维码显示比较清晰,并且每个模块的大小用眼睛容易区别时,我们可以做到人工把黑白相间的图像,识别为01组成的二维数组。例如如下的二维码识别为二维数组是1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,11,原创 2020-05-29 20:03:57 · 1778 阅读 · 0 评论 -
初识二维码 第九讲 二维码的应用之三商品码
初识二维码 第九讲 二维码的应用之三商品码1概述从二维码的编码信息到生成二维码的过程之中,没有加密的信息保护过程。所以任何敏感信息在生成二维码之前,要先经过加密的操作,成为密文之后,才允许被送给二维码的生成引擎,来生成二维码。这样才能保证信息的安全。2应用现状现在是有条型码的地方,都可能有了二维码。两者的区别在于,手机支持了扫描二维码。没有支持条型码。3商品二维码的用途对于低值易耗品,可以用来追溯它的来源,生产日期,生产厂家等。对于工厂的设备等,可以用来实现设备的生命周期管理。二维码原创 2020-05-28 23:06:02 · 288 阅读 · 0 评论 -
初识二维码 第八讲 二维码的应用之二网页内容码
初识二维码 第八讲 二维码的应用之二网页内容码1概述为网页生成二维码的意义是,假设有640个汉字组成的一个网页,在系统内部保存仅点1K多的字节,在网页上以64*64的字体显示,生成图像的大小是约2.5M多的字节。而且以OCR的方式识别出来的方式有难度。以生成二维码的图像的大小是177*177*25,是780K字节,且二维码的方式识别的准确率更高,技术难度远小于普通图像的识别难度。生成的二维码,用手机扫码后,呈现在手机上,可以直接阅读了。这个生成的二维码就类似于缩微胶片,成为了媒体的一种新的形原创 2020-05-27 21:34:59 · 254 阅读 · 0 评论 -
初识二维码 第六讲 二维码的质量控制的被动措施
初识二维码 第六讲 二维码的质量控制的被动措施我在第一讲中,提到过,二维码的扫码,是一个信息传输的过程,这个过程中,噪声是不可避免的。传输的数据出错是大概率的。当解出来的码,发现了错误,怎么办呢?这就是质量的被动措施来解决了。一个是冗余,例如格式信息和版本信息在二维码上都存储有两份完全一样的信息。另一个是纠错码的使用。在二维码中,对格式信息和版本信息以及数据码都进行了纠错编码使用的是BCH编码算法。在译码时,进行纠错检查,发现错误,及时纠错。对数据码的纠错的编码算法叫做Reed-Solom原创 2020-05-25 21:26:47 · 348 阅读 · 1 评论 -
初识二维码 第五讲 二维码的质量控制的主动措施
初识二维码 第五讲 二维码的质量控制的主动措施1.概述为了防止二维码的印刷错误,印刷模糊,二维码被部分部分遮挡等原因,造成扫码困难甚至失败,二维码在设计上做出了很多的努力。根据经验可知,出现连续多个黑块或者是连接多块白块,容易造成扫码枪的误读,如果能达到尽可能地黑白相间的分布模块,则读码的准确率是最高的。因此建立了二维码的质量评估体系,并且设计了掩码的方式,掩码改变了黑白模块的分布规律2.二维码的质量评估根据参考译码,符号对比度,印刷增量,轴向不一致性,和未使用的纠错这几个指示对其进行质原创 2020-05-24 14:34:45 · 1416 阅读 · 0 评论 -
初识二维码 第四讲 二维码的译码流程
初识二维码 第四讲二维码的译码流程译码与编码是相反的过程。第一步:定位图形,把它转化为01的二维矩阵第二步:解析出格式信息,包括其中的纠错等级和掩模编号第三步:判断版本号第四步:还原掩模的操作第五步:根据模块的排列规则,恢复出数据和纠错码字的序列第六步:用纠错码对数据码进行纠错检测与纠错操作。第七步:对数据码字进行译码。如下图的流程图所示:第一步分成以下的子步骤:1.1 根据图像的反射率,把图像转化为一系列深色与浅色的像素,属于图像的灰化处理。1.2 扫码枪对二维码进行扫码时原创 2020-05-23 21:49:14 · 2519 阅读 · 0 评论 -
初识二维码 第三讲 二维码的编码流程
初识二维码 第三讲二维码的编码流程第一步:数据分析1.1 确定要编码的字符类型1.2 选择所需要的纠错等级1.3 选择版本第二步:数据编码2.1 字符数据转为位流2.2 位流分为每8位一个码字2.3 填充剩余数据码字数第三步:纠错编码3.1 码字序列分块3.2 按块生成纠错码字3.3 纠错码放在数据码字的后面第四步:构造最终的信息4.1 构造块信息的最终序列4.2 加剩余比特位第五步:在矩阵中布置模块第六步:掩模6.1 掩模操作6.2 评价结果6.3 ...原创 2020-05-22 22:43:42 · 5585 阅读 · 0 评论 -
初识二维码 第二讲 二维码的结构
初识二维码 第二讲二维码的结构它分为功能部分与编码部分。功能部分用于定位,与二维码的版本与格式等元数据的存储。二维码的大小到21*21的格子到177*177的格子。边长数为除4余1。边长数减去17后再除以4是它的版本号,一共有1到40版本。编码的纠错有L,M,G,H四个级别。所以例如1-L是第一版本,纠错等级为L。定位坐标为左上角为0,0。第6行与第6列为定位线。黑格子被识别为1,白格子被识别为0。第一到第6版本没有版本信息。从第7版本到第40版本才加上版本的信息。格式信息包括了纠错等级和掩模原创 2020-05-21 23:22:11 · 7889 阅读 · 0 评论 -
初识二维码 第一讲二维码的起源
初识二维码 第一讲二维码的起源二维码源于条形码。条形码的编码携带的信息很有限。二维码有许多种编码方式,最流行的编码是快速响应二维码,由日本发明,经过JIS标准化,后来通过了ISO,成为国标标准。在2000年我国引入ISO标准,经过修改,成为国家推荐标准GB/T 18284。快速响应二维码最醒目的视觉特征是有三个回字形的方向标,位于左上角,右上角和左下角。使得在扫码时,不用特意得对准方向。二维码作为信息的入口价值越来越大,人们也形成了手机扫二维码的习惯。但是它的承载的内容具有人眼不可见性原创 2020-05-20 21:40:34 · 7702 阅读 · 0 评论