二维码学习笔记

目录

二维码简介

二维码结构

二维码的编码流程

二维码的译码流程

二维码相关参考网址


二维码简介

 二维码的全称是二维条码,有多种编码方式,如QR Code、Data Matrix、Code 49、PDF417、Code 16K、Code One等。

日常生活中常用的二维码是QR二维码。以下以QR二维码为例。

二维码结构

  • 位置探测图形、位置探测图形分隔符、定位图形:这三个图形用于定位二维码
  • 校正图形:用于确定二维码的方向
  • 格式信息:用于保存二维码的纠错等级的位置,分为L、M、Q、H
  • 版本信息:用于确定二维码的大小,二维码共有40种版本的矩阵(一般为黑白色),从21x21(版本1)到177x177(版本40),每个版本二维码都会前一版本二维码的每边上增加4个模块
  • 数据和纠错码字:用于保存将数据信息转化成二进制位流和纠错字符的位置 

二维码的编码流程

  • 数据分析:确定编码的字符类型,按相应的字符集转换成符号字符;选择纠错等级,在规格一定的条件下,纠错等级越高,真实数据的容量就越小
  • 数据编码:按模式下相应的字符集转换成二进制逻辑值,将二进制逻辑值排列为位流,对于字母、中文、日文等,只是分组方式、模式等内容有所区别,基本方法是一致的。虽然二维码比一维条码具有更强大的信息记载能力,但其容量也是有限的
  • 纠错编码:按需对上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字。在二维码规格和纠错等级确定的情况下,其所能容纳的码字总数和纠错码字数也就确定了。如:当纠错等级为H时,版本10的二维码能容纳346个码字,其中包括224个纠错码字。这224个纠错码字能够纠正112个替代错误(如黑白颠倒)或者224个数据读取错误(无法读到或者无法译码),因此纠错容量为112/346=32.4%,就是说,二维码区域中大约有1/3的码字是冗余的。
  • 构造最终数据信息:在规格确定的情况下,按需对上面的码字序列分块,并根据纠错等级和分块的码字对每个分块进行计算,得出相应的纠错码字区块,把纠错名字区块按顺序构成一个序列,产生纠错码字,并把纠错码字加入数据码字序列后面,形成一个新的序列。
  • 构造矩阵:将位置探测图形、位置探测图形分隔符、定位图形、校正图形放入矩阵中,并把上面的完整序列填充到相应规格二维码矩阵的区域中
  • 掩膜:掩膜通常用在符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域的分布比率最优
  • 生成格式和版本信息:格式和版本信息放在相应区域内,版本7~40包含了版本信息,没有版本信息的全为0。二维码上有两个位置包含了版本信息,它们是相互冗余的。版本信息共18位,构成了6x3的矩阵,其中6位是数据位,如版本8,数据位是001000,后面的12位是纠错位。

二维码的译码流程

二维码的译码模块可以选择两种方式读取文件:

  • 一种是直接读入包含条码的图像文件,定位二维码图像区域,进行译码

在读取图像文件后,由于在采集二维码图像的过程容易受到倾斜、燥声等因素的干扰,所以需要在定位二维码之前先进行图像预处理,图像预处理一般包括图像倾斜矫正、平滑滤波、二值化和图像旋转等。

  • 另一种是读入包含条码信息的二维码文件,进行译码。

二维码相关参考网址

https://www.tec-it.com/zh-cn/support/knowbase/barcode-overview/linear/Default.aspx

https://zhuanlan.zhihu.com/p/524814952

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值