一、什么是二维码
二维码 (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. 二维码识别即译码
译码流程:
- 定位并获取符号图像。深色与浅色模块识别为“ 0”与“1”的阵列。
- 识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考。)
- 识读版本信息,确定符号的版本。
- 用掩模图形掩模图形参考已经从格式信息中得出对编码区的位图进行异或处理消除掩模。
- 根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。
- 用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。
- 根据模式指示符和字符计数指示符将数据码字划分成多个部分。
- 最后,按照使用的模式译码得出数据字符并输出结果。
三、二维码识别工具
绿色工具免安装,识别效率快准狠;
支持各类二维码、条形码等的识别;
多种码混合识别,且红色框线定位;
支持png, jpg, bmp等各种图片格式。
示例一:识别电子发票中的二维码(这是张全电发票)
示例二:识别两个二维码,且旋转
示例三:同时识别二维码和条形码,旋转,倒置,缩小等
《相关下载和链接》
二维码识别工具V3.27.exe
二维码国家标准文档资料