一、什么是二维码

二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。

二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码。

1.堆叠式/行排式二维条码,堆叠式/行排式二维条码又称堆积式二维条码或层排式二维条码,其编码原理是建立在一维条码基础之上,按需要堆积成二行或多行。它在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定,其译码算法与软件也不完全相同于一维条码。有代表性的行排式二维条码有:Code 16K、Code 49、PDF417、MicroPDF417 等。

2.矩阵式二维码,最流行莫过于QR CODE ,我们常说的二维码就是它了。矩阵式二维条码(又称棋盘式二维条码)它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维条码有:Code One、MaxiCode、QR Code、 Data Matrix、Han Xin Code、Grid Matrix 等。

二维码在现实生活中的应用越来越普遍由于QR CODE的流行,二维码又称QR code。

二、二维码识别

QR Code码,是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。

1. QR码的基本结构

QR(Quick-Response) code是被广泛使用的一种二维码,解码速度快。它可以存储多用类型,下图是qrcode的基本结构:

位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;
校正图形:规格确定,校正图形的数量和位置也就确定了;
格式信息:表示改二维码的纠错级别,分为L、M、Q、H;

版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块。

数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。

2. 二维码检测定位
1) 寻找二维码的三个角的定位角点,需要对图片进行平滑滤波,二值化,寻找轮廓,筛选轮廓中有两个子轮廓的特征,从筛选后的轮廓中找到面积最接近的3个即是二维码的定位角点。

2) 判断3个角点处于什么位置,主要用来对图片进行透视校正(相机拍到的图片)或者仿射校正(对网站上生成的图片进行缩放拉伸旋转等操作后得到的图片)。需要判断三个角点围成的三角形的最大的角就是二维码左上角的点。然后根据这个角的两个边的角度差确定另外两个角点的左下和右上位置。

3) 根据这些特征识别二维码的范围。

3. 二维码识别即译码

译码流程:

  1. 定位并获取符号图像。深色与浅色模块识别为“ 0”与“1”的阵列。
  2. 识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考。)
  3. 识读版本信息,确定符号的版本。
  4. 用掩模图形掩模图形参考已经从格式信息中得出对编码区的位图进行异或处理消除掩模。
  5. 根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。
  6. 用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。
  7. 根据模式指示符和字符计数指示符将数据码字划分成多个部分。
  8. 最后,按照使用的模式译码得出数据字符并输出结果。

三、二维码识别工具

绿色工具免安装,识别效率快准狠;
支持各类二维码、条形码等的识别;
多种码混合识别,且红色框线定位;
支持png, jpg, bmp等各种图片格式。

示例一:识别电子发票中的二维码(这是张全电发票)

示例二:识别两个二维码,且旋转

示例三:同时识别二维码和条形码,旋转,倒置,缩小等

《相关下载和链接》
二维码识别工具V3.27.exe
二维码国家标准文档资料

【二维码】二维码生成
【二维码】艺术二维码生成

【二维码】二维码识别相关推荐

  1. 一维二维码的提取、识别和产生

    一维二维码的提取.识别和产生 零.相关说明:     在"jsxyhelu.cnblogs.com/机器视觉"栏目主要介绍和图像处理和机器视觉相关的的成套的解决方案.思路和软件集. ...

  2. 【图像处理】条形码与二维码的定位与识别

    代码实现简单环境下的条形码与二维码的定位与识别: 原图: #include<iostream> #include<opencv2\opencv.hpp> #include< ...

  3. 二维码扫描+长按识别二维码demo

    二维码扫描+长按识别二维码demo,已封装好 源码下载

  4. android扫码二维码识别二维码

    1. 快速集成扫码二维码,识别二维码功能.经过加工处理优化的,直接返回扫码结果字符串和图片的bitmap数据. 直接上代码: package com.xinxinchelian.myscanzxing ...

  5. iOS上二维码和一维码识别系列一

    这段时间在做iOS上二维码和一维码的识别 其间遇到问题无数, 特此总结下来, 希望能给后来的同学供参考 在iOS上, 做二维码识别, 首先在网上查找资料, 查找到ZBar和ZXing这两个开源的识别程 ...

  6. qrCode二维码的生成和识别

    有关二维码的介绍,我这里不做过多说明, 可以直接去基维百科查看,附上链接 QR code . IOS7之前,开发者进行扫码编程时,一般会借助第三方库.常用的是 ZBarSDKa 和 ZXingObjC ...

  7. ios微信二维码无法长按识别的若干解决方案

    ios微信二维码无法长按识别的若干解决方案 参考文章: (1)ios微信二维码无法长按识别的若干解决方案 (2)https://www.cnblogs.com/is17/p/5777373.html ...

  8. Android 养成记-1.5 二维码生成+添加logo+识别+扫码

    先看图说话: 1.二维码生成: public void generateQRcode() throws FileNotFoundException {String mLink = text.getTe ...

  9. Halcon图像的一维码二维码识别

    7.1识别一维码的流程和方法 一维码的码制: 一维条码即指条码条和空的排列规则,常用的一维码的码制包括:EAN 码.39 码. 交叉 25 码.UPC 码.128 码.93 码,ISBN 码,及 Co ...

  10. 假如把二维码类似的标签识别技术做成语音片段,优势劣势有哪些?

    假如把二维码类似的标签识别技术做成语音片段,优势劣势有哪些? 优势1:如果能把二维码信息转到人耳朵识别不到对人体无害的频率,那语音二维码的用户体验应该更高. 优势2:在o2o产业里以往的一个二维码只能 ...

最新文章

  1. 成功解决SyntaxError: encoding problem: utf8 with BOM
  2. java操作word文档,深度解析,值得收藏
  3. 使用find命令查找文件
  4. php 当前linux用户权限,Linux 下用户组别权限的理解
  5. DLL型后门原理及完全清除秘诀
  6. Jenkins 构建触发器操作详解
  7. rotate list java_Rotate List | Java最短代码实现
  8. 软件测试面试技术方法(一)
  9. 位图字体的制作与使用
  10. 【Tensorrt】Tensorrt C++部署YOLO v5报错记录 Version tag does not match. Note: Current Version: xxx, Serializ
  11. Creating a ContextMenu on a ListView
  12. LT2611UXC-LVDS转HDMI2.0转换芯片
  13. 国际象棋棋盘 java_java打印国际象棋棋盘的方法
  14. 做好社群营销的4点策略
  15. matlab怎么产生帕斯卡矩阵,MATLAB(一):矩阵基本操作
  16. 【感想】应试教育的死穴
  17. 品德+创意+执行力=企业的不断壮大
  18. 历经艰难,终成大器!改变,永远不迟!
  19. Obsidia笔记如何同步?
  20. 制作GIF表情包需要什么

热门文章

  1. 计算机毕业设计(10)python毕设作品之多B2C用户商城系统
  2. 谷歌研发智能隐形眼镜
  3. 行之有效:第一章观后有感
  4. Linux内存管理之kmalloc、malloc、vmalloc的区别
  5. OneNet数据可视化View页面上的数据过滤器使用介绍
  6. 如鱼饮水,冷暖自知。
  7. 贝荣粒分享:谈谈兼职的坑
  8. ToDesk 远程桌面控制
  9. 梦如繁花,无奈花开花谢花无常 伤感古典日志
  10. 杨百万:股票投资者修养