二维码怎么解析
一、二维码解析
定位图形:首先寻找探测图形,就是二维码上的三个方块。这三个方块的作用就是不管在哪个方向扫描图形,都可以扫到,不信可以将手机翻转测试一下。在通过二维码上的定位图形和分隔符确定二维码信息的图像。定位图形确定二维码符号中模块的坐标,二维码中的模块都是固定的,包括校正图形,版本信息,数据和纠错码。分隔符呢,就是将探测图形与二维码信息图像分开。
灰度化二维码信息像素:手机拍到的图像都是彩色的,所以拍摄到二维码也不列外,它也是彩色的,只不过除了黑白,其他颜色非常浅而已。灰度化是指通过颜色的深浅来识别二维码,就是说颜色深的按深灰处理,浅色的按浅灰处理,去掉其他颜色。
去掉二维码信息像素的噪点:相机的传感器在把光线作为接收信号和输出过程产生的粗糙像素,这些粗糙的像素是照片中不应该出现的干扰因素。噪点就是指这些粗糙的像素。
二值化二维码信息像素:二值化是说将图像上像素灰度值设置为0或者255,也就是变成只有黑白两种颜色。第一步已经灰度化变成只有深灰和浅灰两种颜色,现在二值化是将深灰变成黑色,浅灰变成白色。为什么变成黑白色呢。因为二维码图像其实是由二进制的0或者1组成,0代表白色,1代表黑色。二维码在二值化时会将二维码图像变成只有黑白色的条码,然后根据解析公式什么的(因为像素是0-255之间,要全部转变成0或者255,估计得经过一些计算,然后0就是0,255变为1)转化成二进制信息。
二维码译码和纠错:将得到的二进制信息进行译码和纠错。得到的二进制信息是版本格式信息、数据和纠错码经过一定的编码方式生成的,所以译码是对版本格式信息,数据和纠错码进行解码和对比。纠错是和译码同时进行的,将数据进行纠错。
得到数据。
二、二维码生成
信息按照一定的编码规则后变成二进制,通过黑白色形成矩形。
根据version和纠错级别(纠错码的数量)编码生成一个二进制序列,序列包含
编码类型的二进制(数字类型,字符类型有特定的编码) 编码内容的长度的二进制 编码内容的二进制 结束符(4个0)将序列按8bits为一组重排,如果所有的编码加起来不是8个倍数,还要在后面加上足够的0。
补码。如果序列还没有达到最大的bits数的限制,还要加一些补齐码(Padding Bytes),Padding Bytes就是重复下面的两个bytes:11101100 00010001。每种版本的bits的位数是不同的。
生成纠错码。可以查看文档的第30页到44页的Table-13到Table-22的定义表,可以知道生成纠错码的过程。
穿插放置。把数据码和纠错码的各个8位一组的十进制数(codewords)交替放在一起。如何交替呢,规则如下:
对于数据码:把每个块的第一个codewords先拿出来按顺度排列好,然后再取第一块的第二个,如此类推。
对于纠错码:规则也是一样。
然后按数据码在前纠错码在后合并起来。加上Reminder Bits,对于某些Version的QR,上面的还不够长度,还要加上Remainder
Bits,比如:5Q版的二维码,还要加上7个bits,Remainder Bits加零就好了。关于哪些Version需要多少个Remainder
bit,可以参看文档的第15页的Table-1的定义表。按照一定规则进行掩码,就是进行异或,分散数据,进行画图。
2020-08-28 · 互联网营销推广工具集,助力流量增长。