由一块一块黑白方块组成的二维码在我们生活中随处可见,收付款、加好友等等。那么二维码是如何通过黑白方块来存储信息的呢?

一、二维码的40种版本与8种款式
1)二维码版本:21x21 ~177x177,共有40个版本。除了面积不同之外,版本越高,二维码承载和储存的信息越多。
2)二维码款式:有8个款式在,这些款式中黑白块分布均匀。

二、二维码存储信息的基本原理
1)二维码存储信息原理与计算机识别0和1是一样的。比如一个黑色块代表1,白色块代表0,我们假设“1000101”代表信息“A”,用二维码表示:黑白白白黑白黑,当我们手机扫描二维码时,将这些黑白块转换成0和1,如此就知道了二维码所存储的信息了。
2)二维码的组成:定位信息+版本信息+数据编码信息+存储数据信息等。
在我们用手机扫描二维码时,首先是定位。二维码上排列成三角形的三个大方块、黑色虚线都是用来定位的。我们手机扫描定位后,开始了解二维码的大致情况,这里面包含二维码的版本信息、数据编码之类,剩下区域就是存储数据信息。手机识别二维码信息是从右下角开始的(从下到上,从右到左)。

三、二维码遮挡或损坏一部分仍然可以识别的原因
这是因为在二维码中的存储数据区域可以分成两个部分:纠错区域、存储信息区域。纠错部分是备份数据的区域,所以即使二维码被遮挡了一部分,仍然可以用手机识别出来。
此外,二维码是用容错等级的,一共4个等级。
(1)L——7%
(2)M——15%
(3)Q——25%
(4)H——30%
所以二维码的容错等级越高,即使二维码被遮挡的部分大一点依旧不影响扫描,但是提高容错率意味着纠错区域越大,那么二维码存储的数据就自然变少了。

四、二维码中黑白块分布均匀,没有出先部分全黑或部分全白的现象
这是因为在生成二维码的过程中,为了避免生成大面积的黑块和白块,进行了“掩码”的操作,二维码经过掩码计算后就会在8个款式中选择一个最合适的一款进行处理,处理完之后二维码中的黑白块就变得均匀了。

五、二维码会被用光吗?
二维码是上世纪一家日本公司发明的,早在2016年,全国日平均扫描次数达到15亿次,那么不禁产生疑问:二维码会被用光吗?因为二维码实质上是由0和1组成的,我们知道0和1的组成接近无数种,所以我们不必杞人忧天。

日常使用的二维码识别原理相关推荐

  1. android二维码识别原理与测试方法

    首先看看二维码识别原理: 一.我们都是使用二维码生成工具制码,原理对于我们意义并不是很大,这里就不浪费地方复制黏贴了.二维码编码原理请google. 二.下面是与本次问题相关的一些经验. 1.    ...

  2. Python基于pyzbar、opencv、pyqt5库,实现二维码识别 gui 应用程序开发

    二维码组成结构基本介绍 二维码识别背景介绍 视觉的方法可以用来估计位置和姿态.最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和.相机畸变矫正.轮廓提取.solvepnp来获 ...

  3. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

  4. 二维码登录原理及生成与解析

    一.前言 这几天在研究二维码的扫码登录.初来乍到,还有好多东西不懂.在网上看到有人写了一些通过QRCode或者Zxing实现二维码的生成和解码.一时兴起,决定自己亲手试一试.本人是通过QRCode实现 ...

  5. Opencv4.5.1 微信二维码识别功能 QRCode 编译与使用 C++

    日常生活中手机摄像头最常用的功能可能就是扫码了,而且大部分使用微信扫码,微信扫码的功能的确很强大,精度高.速度快.微信扫码近来加入了opencv开源项目了.现特地进行了尝试,并记录了整个过程,以上动图 ...

  6. 【二维码识别】基于matlab GUI灰度+二值化+校正二维码生成与识别【含Matlab源码 635期】

    ⛄一.二维码生成与识别简介 如今,移动互联网技术日新月异,随着5G时代的来临,广泛应用于数据处理过程中的二维码信息安全日益成为人们越来越关注的问题.以QR码为代表的二维码,以其在信息存储.传输和识别技 ...

  7. 基于多二维码识别的无人机运动真值获取

    基于多二维码识别的三维运动真值获取 1.背景介绍 2.原理 2.1 二维码基础 2.2图像预处理 2.3 定位标轮廓提取 2.4 多二维码鲁棒识别 3 运行结果 3.1对单张图片进行多二维码识别 3. ...

  8. 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列

    第47章     QR-Decoder-OV5640二维码识别 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.y ...

  9. 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列

    第47章     QR-Decoder-OV5640二维码识别 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.y ...

最新文章

  1. 拥抱开源IaaS云平台:360度盘点OpenStack
  2. er图转化为关系模式题_“助你在家自学”之无机化工流程题解法
  3. JVM_04 字符串常量池(详解intern( ))
  4. 数据库常忽略小问题汇总
  5. 【Qt】Qt Creator中布局器详解
  6. (转) 淘淘商城系列——Redis五种数据类型介绍
  7. NOIP模拟测试25「字符串·乌鸦喝水·所陀门王的宝藏(陀螺王)」
  8. Linux 修改用户名的主目录 家目录
  9. Perfect Appearance NIKE KD 9 PERFORMANCE REVIEW
  10. Momentum动量法
  11. 汇编语言王爽 实验七
  12. 毕业设计任务书---毕业设计(论文)任务的内容和要求(包括原始数据、技术要求、工作要求)
  13. 企业员工管理系统 一:项目介绍
  14. java架构图软件,如何画好IT项目中的各种架构图
  15. BUUCTF Reverse/findKey
  16. Mac远程操作Ubuntu共享文件
  17. windows 时间同步出错的解决办法
  18. Facebook开源的数据Mock:Memisis详解
  19. dhrystone测试前系统软件准备与计算
  20. 请选择服务器许可证文件,获取并安装许可文件 | PowerMill 2022 | Autodesk Knowledge Network...

热门文章

  1. idea如何全局搜索关键字_IntelliJ IDEA全局内容搜索和替换教程图解
  2. 002-基于MQTT实现消息的发布订阅
  3. 工作 996,生病 ICU!这一次,程序员不忍了!
  4. 2019年定制安卓app开发的五大优势
  5. 【Stream流、方法引用】
  6. UWPWP8.1 附加属性 和WebView的NavigateToString方法XAML绑定方法
  7. 2021年数据结构考试总结章
  8. pythonlist初始化_Python中list初始化方法示例
  9. 《触摸屏游戏设计》——4.2节游戏需要故事……不是么?
  10. urllib.parse模块