CN105654017A - 二维码传输方法和系统 - Google Patents
二维码传输方法和系统 Download PDFInfo
- Publication number
- CN105654017A CN105654017A CN201511003923.3A CN201511003923A CN105654017A CN 105654017 A CN105654017 A CN 105654017A CN 201511003923 A CN201511003923 A CN 201511003923A CN 105654017 A CN105654017 A CN 105654017A
- Authority
- CN
- China
- Prior art keywords
- quick response
- response code
- row
- gray value
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Abstract
本发明涉及一种二维码传输方法和系统,上述二维码传输方法,包括如下步骤:获取需要传输至客户端的二维码;获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。本发明提供的二维码传输方法和系统使传输过程中,二维码所占的内存得到有效的减小,可以提高其传输效率。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种二维码传输方法和系统。
背景技术
在二维码相关技术高速发展的今天,用户可以通过移动通信终端扫描相应的二维码达到快速了解产品或者设备功能的目的;产品的二维码是二维码生成器(如微信服务器等)获取产品的相关信息后,根据其特点所生成的与产品相对应的二维码,二维码生成器生成相应的二维码后,需要将二维码发送至客户端(相应的产品或者设备等),以供相关用户扫描,达到其提供相应信息的目的。
通常情况下,二维码生成器需要以*.jpg*.png等压缩图片的形式将二维码传输至相应的客户端,上述各种图片形式需要占用较大的内存,容易导致二维码的传输效率低。
发明内容
基于此,有必要针对传统方案容易导致二维码传输效率低的技术问题,提供一种二维码传输方法和系统。
一种二维码传输方法,包括如下步骤:
获取需要传输至客户端的二维码;
获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;
将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。
上述二维码传输方法,通过获取需要传输至客户端的二维码所对应的颜色分布图,进而生成数据矩阵,通过传输上述数据矩阵以实现相应二维码的传输,使传输过程中,二维码所占的内存得到有效的减小,可以提高其传输效率。
上述获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵的步骤包括:
对所述二维码进行二值化处理,得到相应的二值化分布图;
根据所述二值化分布图生成二维码的二值化矩阵;
将所述二值化矩阵转换成数据矩阵。
上述二维码传输方法,在生成数据矩阵之前,对所述二维码进行二值化处理,以获取二维码的二值化分布信息,进而生成相应的二维码矩阵,可以提高所生成的二维码矩阵的准确性。
上述对所述二维码进行二值化处理,得到相应的二值化分布图的步骤前包括:
对所述二维码进行灰度化处理,获取灰度化处理后的二维码中每个像素点的灰度值;
将第一选定像素点的灰度值设为第一灰度值,将第二选定像素点的灰度值设为第二灰度值;其中,所述第一选定像素点指灰度值小于灰度阈值的像素点,所述第二选定像素点指灰度值大于灰度阈值的像素点。上述灰度阈值可以根据二维码中像素点的灰度值分布情况进行预设,可以设置为第一灰度值和第二灰度值的平均值等值。
上述二维码传输方法,对二维码进行二值化处理之前,对上述二维码进行灰度化处理,可以进一步压缩二维码所占用的内存,以提高后续生成相应二维码的效率。
上述将第一选定像素点的灰度值设为第一灰度值,将第二选定像素点的灰度值设为第二灰度值的步骤前还包括:
对每个像素点的灰度值进行直方图统计,得到灰度值统计图;
在灰度值统计图中读取两个灰度值峰值,将两个灰度值峰值的平均值设为灰度阈值。
上述二维码传输方法中,灰度阈值均根据每个像素点灰度值的直方图所得到,可以保证其取值的准确性。
上述对所述二维码进行二值化处理,得到相应的二值化分布图的步骤包括:
确定所述二维码的行变化界和列变化界;其中,所述行变化界指二维码中相邻两行灰度值变化量大于预设变量值的变化界线;所述列变化界指二维码中相邻两列灰度值变化量大于预设变量值的变化界线;
根据所述行变化界和列变化界确定二维码的多个颜色块,并确定所述颜色块的灰度值,得到二维码的二值化分布图。
上述二维码传输方法,根据上述行变化界和列变化界确定二维码的多个颜色块,再确定各个颜色块的灰度值,便可以得到相应的二值化分布图,无需依次确定每个像素点的灰度值,可以减少生成上述二值化分布图的工作量。
上述确定所述二维码的行变化界和列变化界的过程包括:
计算相邻行相应像素点灰度值之差的绝对值和,得到行变量,若所述行变量大于预设变量值,则判定所述相邻行为行变化界;
计算相邻列相应像素点灰度值之差的绝对值和,得到列变量,若所述列变量大于预设变量值,则判定所述相邻列为列变化界。
上述二维码传输方法可以保证所确定的行变化界和列变化界的准确性。
上述确定所述颜色块的灰度值的过程包括:
分别确定每相邻两个行变化界的行中线,以及每相邻两个列变化界的列中线;其中,所述行中线为平行于相应行变化界,且分别与两个行变化界距离相等的线条;所述列中线为平行于相应列变化界,且分别与两个列变化界距离相等的线条;
分别获取各条行中线以及各条列中线的交点处的灰度值,得到交点灰度值;
根据所述交点灰度值确定相应交点所在颜色块的灰度值。
上述二维码传输方法,根据交点灰度值确定相应颜色块的灰度值,可以保证所确定的灰度值的准确性。
上述将所述二值化矩阵转换成数据矩阵的步骤包括:
将灰度值大的设定像素单位设为1,将灰度值小的设定像素单位设为0,生成二值化矩阵对应的数据矩阵;
剔除所述数据矩阵边缘处的全零行和全零列,得到更新后的数据矩阵。
上述二维码传输方法,将二值化矩阵转换为相应的二进制矩阵,使其包含的各个数据为0或者1,可以较为方便的转换为其他形式的数据,可以提高后续相应数据处理过程中的便捷性。由于在二维码生成或者二值化过程中各种干扰因素的影响,可能使数据矩阵的边缘处出现全零行或者全零列等误差数据,此时可以将上述误差数据进行剔除,以实现对数据矩阵的更新,保证数据矩阵的准确性。
上述将所述数据矩阵发送至客户端进行解析,转换为相应的二维码的过程包括:
从起点逐行扫描数据矩阵,根据扫描的数据生成相应的十六进制数,并将所述十六进制数转换为ASCII码,得到数据矩阵对应的ASCII码流;
将所述ASCII码流传输至客户端;
客户端接收所述ASCII码流,并解析成相应的数据矩阵。
上述二维码传输方法,将数据矩阵所包含的数据转换为相应的ASCII码流,再进行传输,可以保证传输过程中相关数据的稳定性。
一种二维码传输系统,包括:
获取模块,用于获取需要传输至客户端的二维码;
生成模块,用于获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;
发送模块,用于将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。
上述二维码传输系统,通过获取需要传输至客户端的二维码所对应的颜色分布图,进而生成数据矩阵,通过传输上述数据矩阵以实现相应二维码的传输,使传输过程中,二维码所占的内存得到有效的减小,可以提高其传输效率。
附图说明
图1为一个实施例的二维码传输方法流程图;
图2为一个实施例的灰度值统计图;
图3为一个实施例的二维码示意图;
图4为一个实施例的行变量示意图;
图5为一个实施例的列变量示意图;
图6为一个实施例的行中线和列中线示意图;
图7为一个实施例的二维码示意图;
图8为一个实施例的二维码示意图;
图9为一个实施例的二维码传输系统结构示意图。
具体实施方式
下面结合附图对本发明的二维码传输方法和装置的具体实施方式作详细描述。
参考图1,图1所示为一个实施例的二维码传输方法流程图,包括如下步骤:
S10,获取需要传输至客户端的二维码;
上述客户端可以包括需要通过二维码向相关用户提供其功能或者其他信息的产品或者设备,比如多体征采集器等设备。通常情况下,二维码与相应的产品或者设备一一对应,用户通过相应的终端扫描某个产品或者设备的二维码,便可以获取上述产品或者设备的功能、配置等信息。
当客户端需要从二维码生成器获取其对应的二维码,以供相应客户扫描时,客户端可以向二维码生成器发送二维码请求指令,二维码生成器在接收上述二维码请求指令后可以根据其获取需要传输至客户端的二维码;上述二维码请求指令包括客户端名称等可以唯一指代相应客户端的客户端属性值,使二维码生成器可以根据二维码请求指令获取该客户端对应的二维码,以提高所传输的二维码的准确性。
S20,获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;
上述颜色分布图可以包括二维码中各个像素点灰度值分布图,或者利用其它颜色属性值表示各个像素点颜色特征的颜色属性值分布图;通过上述颜色分布图可以获取二维码各个像素点的颜色信息,上述颜色信息可以包括相应像素点的灰度值或者RGB值等信息。上述数据矩阵可以包括用数字或者字母等符号组成的矩阵,例如二进制矩阵,八进制矩阵等等;上述数据矩阵的大小与二维码的分辨率一致,数据矩阵的行数可以为相应二维码每列所包括的像素点个数,数据矩阵的列数可以为二维码每行所包括的像素点个数。上述数据矩阵的各个数据可以表明相应像素点的灰度值等颜色信息。
S30,将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。
上述步骤S30中,数据矩阵包含相应二维码的颜色信息,客户端接收数据矩阵后,可以将其进行相应的解析、转换等处理,以将上述数据矩阵还原为客户端所需要的二维码,这样在二维码的传输过程中,便无需传输二维码对应的图片,可以直接对包含二维码颜色信息的数据矩阵进行相应的传输,可以使传输过程中相应数据所占的内存得到大幅度降低。
本实施例提供的二维码传输方法,通过获取需要传输至客户端的二维码所对应的颜色分布图,进而生成数据矩阵,通过传输上述数据矩阵以实现相应二维码的传输,使传输过程中,二维码所占的内存得到有效的减小,可以提高其传输效率。
在一个实施例中,上述获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵的步骤可以包括:
对所述二维码进行二值化处理,得到相应的二值化分布图;
根据所述二值化分布图生成二维码的二值化矩阵;
将所述二值化矩阵转换成数据矩阵。
上述二值化处理后的二维码中,各个像素点的灰度值为0或255,这样便可以根据二维码各个像素点的灰度值生成二值化分布图,进而生成相应的二值化矩阵,使上述二维码的颜色信息可以通过仅包括0和255这两个数据的二值化矩阵表达,使上述颜色信息的表达得到有效简化,从而减少了相应信息所占用的内存。上述二值化矩阵的大小与二维码的分辨率一致,数据矩阵的行数可以为相应二维码每列所包括的像素点个数,数据矩阵的列数可以为二维码每行所包括的像素点个数。
将二值化矩阵转换成数据矩阵的过程可以包括:
将灰度值为0的像素点设为第一数据,将灰度值为255的像素点设为第二数据,得到相应的数据矩阵。
上述第一数据和第二数据可以根据传输稳定性或者客户端的兼容性等因素进行设置,例如,将第一数据设置为0,第二数据设置为1,此时,相应的数据矩阵便为一个二进制矩阵。
本实施例在生成数据矩阵之前,对所述二维码进行二值化处理,以获取二维码的二值化分布信息,进而生成相应的二维码矩阵,可以提高所生成的二维码矩阵的准确性。
在一个实施例中,上述对所述二维码进行二值化处理,得到相应的二值化分布图的步骤前可以包括:
对所述二维码进行灰度化处理,获取灰度化处理后的二维码中每个像素点的灰度值;
将第一选定像素点的灰度值设为第一灰度值,将第二选定像素点的灰度值设为第二灰度值;其中,所述第一选定像素点指灰度值小于灰度阈值的像素点,所述第二选定像素点指灰度值大于灰度阈值的像素点。
本实施例对二维码进行二值化处理之前,对上述二维码进行灰度化处理,可以进一步压缩二维码所占用的内存,以提高后续生成相应二维码的效率。上述第一灰度值以及第二灰度值可以分别设置为对比分明的两个灰度值,比如将第一灰度值设为0,将第二灰度值设为255等等,以提高相应设置后,上述二维码所包含颜色的区分度。
作为一个实施例,上述将第一选定像素点的灰度值设为第一灰度值,将第二选定像素点的灰度值设为第二灰度值的步骤前还可以包括:
对每个像素点的灰度值进行直方图统计,得到灰度值统计图;
在灰度值统计图中读取两个灰度值峰值,将两个灰度值峰值的平均值设为灰度阈值。
通常情况下,二维码由两种对比分明的颜色组成,因此,二维码中像素点的灰度值主要包括两个,即两个灰度值峰值,每个灰度值代表一种颜色,由于二维码生成过程中各种干扰因素的影响,或者直方图统计过程中的相关误差,可能导致在相应的灰度统计图中,部分像素点的灰度值为分布在上述两个灰度值附近的值或者其他值,即不完全等于上述两个灰度值的误差灰度值,此时便可以对每个像素点的灰度值进行直方图统计,从相应的灰度值统计图获取二维码中像素点的灰度值取值情况。通过上述灰度值统计图中直方图的连续性分别确定上述二维码两个灰度值取值范围,再在上述两个灰度值取值范围内分别选择最多像素点对应的灰度值(即上述两个灰度值峰值)。由于其中有部分像素点的灰度值为误差灰度值,为了保证每个像素点灰度值的准确性,可以将上述两个灰度值峰值的平均值设为灰度阈值,将灰度值小于灰度阈值的像素点灰度值设置为第一灰度值,将灰度值大于灰度阈值的像素点灰度值设置为第二灰度值。
上述灰度值统计图可以如图2所示,图2中,横坐标表示灰度值,纵坐标表示像素点个数。上述图2对应的二维码中,两个灰度值峰值分别为50和250,则相应的灰度阈值为150,则可以将小于150的误差灰度值设置为0,将大于150的误差灰度值设置为255,以提高各个像素点所取灰度值的准确性。
在一个实施例中,上述对所述二维码进行二值化处理,得到相应的二值化分布图的步骤可以包括:
确定所述二维码的行变化界和列变化界;其中,所述行变化界指二维码中相邻两行灰度值变化量大于预设变量值的变化界线;所述列变化界指二维码中相邻两列灰度值变化量大于预设变量值的变化界线;
根据所述行变化界和列变化界确定二维码的多个颜色块,并确定所述颜色块的灰度值,得到二维码的二值化分布图。
本实施例中,相邻两行灰度值变化量可以通过对相邻两行中相应像素点的灰度值之差求绝对值,再进行求和进行确定;相邻两列灰度值变化量可以通过对相邻两列中相应像素点的灰度值之差求绝对值,再进行求和进行确定;上述相邻两行中相应像素点指这两行中序号相同的像素点,比如,第1行的第1个像素点与第2行的第1个像素点为相邻两行中相应像素点。上述预设变量值可以根据每行的宽度或者每列的长度,即每行或者每列包括多少像素点等因素进行设置,例如,设置为0.03或者0.05等值。上述行变化界可以如图3所示的c1、c2、c3、c4和c5;列变化界可以如图3所示的d1、d2、d3、d4、d5和d6。图3中,行变化界c1、c2、c3、c4和c5两侧相应像素点的灰度变化值大于预设变量值,即每条行变化界两侧相应像素点灰度值的变化较大;列变化界d1、d2、d3、d4、d5和d6两侧相应像素点的灰度变化值大于预设变量值,即每条列变化界两侧相应像素点灰度值的变化较大。上述颜色块可以指各条行变化界和列变化界相交后所形成的区域,例如图3所示的各个黑色区域或者白色区域;每个颜色块中的像素点具有相同的灰度值,获取其中某个像素点的灰度值,便可以确定相应颜色块的灰度值,为了减小误差影响,可以根据各个颜色块中心位置像素点的灰度值确定相应颜色块的灰度值,从而得到二维码的二值化分布图。上述行变化界可以为某行与其下一行的公共边,也可以包括与上一行相比,相应像素点灰度值变化量连续大于预设变量值的一行或者几行。上述列变化界可以为某列与其下一列的公共边,也可以包括与上一列相比,相应像素点灰度值变化量连续大于预设变量值的一列或者几列。
作为一个实施例,上述确定所述二维码的行变化界和列变化界的过程可以包括:
计算相邻行相应像素点灰度值之差的绝对值和,得到行变量,若所述行变量大于预设变量值,则判定所述相邻行为行变化界;
计算相邻列相应像素点灰度值之差的绝对值和,得到列变量,若所述列变量大于预设变量值,则判定所述相邻列为列变化界。
本实施例中,若连续多个相邻行的行变量大于预设变量值,说明这几行处于由上一个灰度特点向下一个灰度特点的变化过程中,相应的行变化界可以包括这几行。若仅有某一行与其上一行的行变量大于预设变量值,其与下一行的行变量小于或者等于预设变量值,此时,相应的行变化界可以为该行与上一行的公共边,也可以为该行。若连续多个相邻列的列变量大于预设变量值,说明这几列处于由上一个灰度特点向下一个灰度特点的变化过程中,相应的列变化界可以包括这几列。若仅有某一列与其上一列的列变量大于预设变量值,其与下一行的列变量小于或者等于预设变量值,此时,相应的列变化界可以为该列与上一列的公共边,也可以为该列。
作为一个实施例,上述各相邻行对应的行变量可以如图4所示实线,图4中,横坐标表示相邻行,例如,1表示第一组相邻行,即由第1行与第2行所组成的一组相邻行,纵坐标表示行变量;若上述行变量大于预设变量值,则可以将该相邻行对应的行变量设为图4中虚线所示的高电平,其表明,上述相邻行为行变化界;若上述行变量小于或者等于预设变量值,则可以将该相邻行对应的行变量设为图4中虚线所示的低电平,其表明,上述相邻行中相应像素点属于同一个颜色块,其为非行变化界。上述各相邻列对应的列变量可以如图5所示曲线,图5中,横坐标表示相邻列,例如,1表示第一组相邻列,即由第1列与第2列所组成的一组相邻列,纵坐标表示列变量;若上述列变量大于预设变量值,则可以将该相邻列对应的列变量设为图4中虚线所示的高电平,其表明,上述相邻列为列变化界;若上述列变量小于或者等于预设变量值,则可以将该相邻列对应的列变量设为图4中虚线所示的低电平,其表明,上述相邻列中相应像素点属于同一个颜色块,其为非列变化界。
作为一个实施例,上述确定所述颜色块的灰度值的过程可以包括:
分别确定每相邻两个行变化界的行中线,以及每相邻两个列变化界的列中线;其中,所述行中线为平行于相应行变化界,且分别与两个行变化界距离相等的线条;所述列中线为平行于相应列变化界,且分别与两个列变化界距离相等的线条;
分别获取各条行中线以及各条列中线的交点处的灰度值,得到交点灰度值;
根据所述交点灰度值确定相应交点所在颜色块的灰度值。
本实施例中,上述行中线可以如图3所示的a1、a2、a3、a4、a5和a6,上述列中线可以如图3所示的b1、b2、b3、b4、b5和b6。行中线和列中线的交点为相应颜色块的中点,相应的交点灰度值即为该交点所在颜色块的灰度值。
上述行中线也可以如图6所示二维码中的横线,列中线也可以如图5所示二维码中的竖线,如图6所示,上述行中线和列中线的各个交点都在具有同一灰度值的颜色块上,根据交点灰度值确定相应颜色块的灰度值,可以保证所确定的灰度值的准确性。
在一个实施例中,上述将所述二值化矩阵转换成数据矩阵的步骤可以包括:
将灰度值大的设定像素单位设为1,将灰度值小的设定像素单位设为0,生成二值化矩阵对应的数据矩阵;
剔除所述数据矩阵边缘处的全零行和全零列,得到更新后的数据矩阵。
上述设定像素单位可以包括一个像素点;也可以包括一个像素区域,上述像素区域可以指二维码中具有相同颜色的最小区域,其一般包括多个像素点,例如,在图3中,可以以能被各个颜色块对应的区域整除的像素区域为设定像素单位,图3中,各个颜色块便为相应设定像素单位的整数倍,即各个颜色块的长为设定像素单位长的n倍,各个颜色块的宽也为设定像素单位宽的n倍,上述n为正整数。
本实施例将二值化矩阵转换为相应的二进制矩阵,使相应的数据矩阵所占的内存相对较小,且其包含的各个数据为0或者1,可以较为方便的转换为其他形式的数据,可以提高后续相应数据处理过程中的便捷性。由于在二维码生成或者二值化过程中各种干扰因素的影响,可能使数据矩阵的边缘处出现全零行或者全零列等误差数据,此时可以将上述误差数据进行剔除,以实现对数据矩阵的更新,保证数据矩阵的准确性。
在一个实施例中,上述将所述数据矩阵发送至客户端进行解析,转换为相应的二维码的过程可以包括:
从起点逐行扫描数据矩阵,根据扫描的数据生成相应的十六进制数,并将所述十六进制数转换为ASCII码,得到数据矩阵对应的ASCII码流;
将所述ASCII码流传输至客户端;
客户端接收所述ASCII码流,并进行解析,转换为相应的二维码。
上述依次扫描数据矩阵的各行可以依据Z字形对相应的数据矩阵进行扫描,比如从第一行的第一个数据扫描至最后一个数据,接着从第二行的最后一个数据扫描至第二行的第一个数据,以此方式循环对后续各行进行扫描,直至将数据矩阵的各个数据扫描完毕。在上述扫描数据矩阵的过程中,还可以获取每行的宽度,即每行包括多少像素点或者多少个设定像素单位,根据上述宽度进行相应的解析和转换,以保证后续在客户端所转换的二维码的准确性。
本实施例中,将数据矩阵所包含的数据转换为相应的ASCII码流,进而可以转换为上述ASCII码流对应的json结构,上述json结构可以在相关网络中根据其对应的传输协议进行稳定的传输,从而提高了传输过程中相关数据的稳定性。客户端接收上述ASCII码流对应的json结构,可以先将json结构解析成ASCII码流,再根据上述数据矩阵每行的宽度,将ASCII码流还原为相应的数据矩阵,进而转换为其需要获取的二维码。
在一个实施例中,上述二维码可以包括黑白两者颜色,其颜色信息可以表示为QRimg(R,G,B),上述R、G和B可以为大小为Xsize*Ysize的二维矩阵,上述Xsize表示二维码每行的像素点个数,Ysize表示二维码每列的像素点个数,符号*表示乘号;二维矩阵R、G和B中的数据表示该像素点颜色对应的R(红)G(绿)B(蓝)值,例如,二维矩阵R、G和B中第一行第一列的数据均为1,表明相应二维码中,第一个像素点的颜色为RGB值为(1,1,1)对应的颜色。
对上述二维码对应的图像进行灰度化处理,得到灰度二维矩阵GrayQRimg,上述灰度二维矩阵GrayQRimg所对应的二维码可以如图7所示,其可以表示为:
GrayQRimg(i,j)=0.299*R(i,j)+0.587*G(i,j)+0.114*B(i,j)(1)
对灰度二维矩阵GrayQRimg中灰度值为误差灰度值的部分像素点进行滤波处理(确定第一选定像素点以及第二选定像素点)的过程可以包括:
FilterQRimg(i,j)=mean{GrayQRimg(i-x,j-y),(x,y∈W)}(2)
其中,FilterQRimg为滤波后的灰度二维矩阵,W为3*3的矩阵,mean为(i,j)坐标为中心的W矩阵区域进行求和平均,得到GrayQRimg(i,j)滤波后的FilterQRimg(i,j)。
对灰度二维矩阵进行直方图统计所得到的灰度值统计图可以如图2所示,可以根据最大类间方差法找到二维的一个合适的灰度阈值T。再对其进行二值化,上述二值化的过程可以包括:
根据上述(3)式进行二值化处理所得到的二值化矩阵BwQRimg(i,j)所对应的二维码可以如图8所示。
求上述二值化矩阵BwQRimg(i,j)相邻行的行变量以及相邻列所对应的行变量过程可以包括:
对上述(4)式进行滤波:
分别得到FilterDiffV、FilterDiffH曲线。
根据下述公式(6)对FilterDiffV、FilterDiffH曲线进行二值化:
得到BwDiffV(i)BwDiffH(j)曲线,即图4和图5所示虚线。
遍历BwDiffV(i)、BwDiffH(j)的连续零点段(图4和图5中低电平所对应的行和列),得到相应的行中线和列中线,上述行中线可以为图6所示的横线,列中线可以为图6所示的竖线,行中线和列中线交底处像素点的灰度值,即为相应颜色块的灰度值(图6中未示出二维码的行变化界和列变化界)。
对上述矩阵BwQRimg(i,j)进行边缘处全零行和全零列的剔除后,以Z字形扫描形成二进制流,在依次将每四个二进制数转换为一组形成一个十六进制数,进而转换为相应的ASCII码(01....EF),形成ASCII码流,还可以进一步转换为相应的json结构,以便于网络传输,将上述json结构发送至客户端,客户端接收上述ASCII码流对应的json结构,可以先将json结构解析成ASCII码流,再根据上述数据矩阵每行的宽度,将ASCII码流还原为相应的数据矩阵,进而转换为其需要获取的二维码。
参考图9,图9所示为一个实施例的二维码传输系统结构示意图,包括:
获取模块10,用于获取需要传输至客户端的二维码;
生成模块20,用于获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;
发送模块30,用于将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。
本发明提供的二维码传输装置与本发明提供的二维码传输方法一一对应,在所述二维码传输方法的实施例阐述的技术特征及其有益效果均适用于二维码传输装置的实施例中,特此声明。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种二维码传输方法,其特征在于,包括如下步骤:
获取需要传输至客户端的二维码;
获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;
将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。
2.根据权利要求1所述的二维码传输方法,其特征在于,所述获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵的步骤包括:
对所述二维码进行二值化处理,得到相应的二值化分布图;
根据所述二值化分布图生成二维码的二值化矩阵;
将所述二值化矩阵转换成数据矩阵。
3.根据权利要求2所述的二维码传输方法,其特征在于,所述对所述二维码进行二值化处理,得到相应的二值化分布图的步骤前包括:
对所述二维码进行灰度化处理,获取灰度化处理后的二维码中每个像素点的灰度值;
将第一选定像素点的灰度值设为第一灰度值,将第二选定像素点的灰度值设为第二灰度值;其中,所述第一选定像素点指灰度值小于灰度阈值的像素点,所述第二选定像素点指灰度值大于灰度阈值的像素点。
4.根据权利要求3所述的二维码传输方法,其特征在于,所述将第一选定像素点的灰度值设为第一灰度值,将第二选定像素点的灰度值设为第二灰度值的步骤前还包括:
对每个像素点的灰度值进行直方图统计,得到灰度值统计图;
在灰度值统计图中读取两个灰度值峰值,将两个灰度值峰值的平均值设为灰度阈值。
5.根据权利要求3所述的二维码传输方法,其特征在于,所述对所述二维码进行二值化处理,得到相应的二值化分布图的步骤包括:
确定所述二维码的行变化界和列变化界;其中,所述行变化界指二维码中相邻两行灰度值变化量大于预设变量值的变化界线;所述列变化界指二维码中相邻两列灰度值变化量大于预设变量值的变化界线;
根据所述行变化界和列变化界确定二维码的多个颜色块,并确定所述颜色块的灰度值,得到二维码的二值化分布图。
6.根据权利要求5所述的二维码传输方法,其特征在于,所述确定所述二维码的行变化界和列变化界的过程包括:
计算相邻行相应像素点灰度值之差的绝对值和,得到行变量,若所述行变量大于预设变量值,则判定所述相邻行为行变化界;
计算相邻列相应像素点灰度值之差的绝对值和,得到列变量,若所述列变量大于预设变量值,则判定所述相邻列为列变化界。
7.根据权利要求5所述的二维码传输方法,其特征在于,所述确定所述颜色块的灰度值的过程包括:
分别确定每相邻两个行变化界的行中线,以及每相邻两个列变化界的列中线;其中,所述行中线为平行于相应行变化界,且分别与两个行变化界距离相等的线条;所述列中线为平行于相应列变化界,且分别与两个列变化界距离相等的线条;
分别获取各条行中线以及各条列中线的交点处的灰度值,得到交点灰度值;
根据所述交点灰度值确定相应交点所在颜色块的灰度值。
8.根据权利要求5所述的二维码传输方法,其特征在于,所述将所述二值化矩阵转换成数据矩阵的步骤包括:
将灰度值大的设定像素单位设为1,将灰度值小的设定像素单位设为0,生成二值化矩阵对应的数据矩阵;
剔除所述数据矩阵边缘处的全零行和全零列,得到更新后的数据矩阵。
9.根据权利要求1至8任一项所述的二维码传输方法,其特征在于,所述将所述数据矩阵发送至客户端进行解析,转换为相应的二维码的过程包括:
从起点逐行扫描数据矩阵,根据扫描的数据生成相应的十六进制数,并将所述十六进制数转换为ASCII码,得到数据矩阵对应的ASCII码流;
将所述ASCII码流传输至客户端;
客户端接收所述ASCII码流,并进行解析,转换为相应的二维码。
10.一种二维码传输系统,其特征在于,包括:
获取模块,用于获取需要传输至客户端的二维码;
生成模块,用于获取所述二维码各个像素点的颜色分布图,根据所述颜色分布图生成数据矩阵;
发送模块,用于将所述数据矩阵发送至客户端进行解析,转换为相应的二维码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511003923.3A CN105654017B (zh) | 2015-12-25 | 2015-12-25 | 二维码传输方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511003923.3A CN105654017B (zh) | 2015-12-25 | 2015-12-25 | 二维码传输方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105654017A true CN105654017A (zh) | 2016-06-08 |
CN105654017B CN105654017B (zh) | 2018-06-26 |
Family
ID=56477102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511003923.3A Active CN105654017B (zh) | 2015-12-25 | 2015-12-25 | 二维码传输方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105654017B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460441A (zh) * | 2018-02-01 | 2018-08-28 | 王伟 | 双z二维码结构 |
CN110633605A (zh) * | 2018-06-25 | 2019-12-31 | 视联动力信息技术股份有限公司 | 一种图像处理方法和装置 |
CN110650464A (zh) * | 2018-06-27 | 2020-01-03 | 成都华迈通信技术有限公司 | 摄像机识别并配置wifi网络的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951056A (en) * | 1994-10-14 | 1999-09-14 | Olympus Optical Co., Ltd. | Information reproduction system for reproducing a two-dimensional, optically readable code |
CN101197004A (zh) * | 2007-12-25 | 2008-06-11 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
CN104504428A (zh) * | 2014-06-22 | 2015-04-08 | 广州市沃希信息科技有限公司 | 一种基于二维码的信息传输方法、系统及移动终端 |
CN105117751A (zh) * | 2015-08-27 | 2015-12-02 | 努比亚技术有限公司 | 二维码传输方法和装置 |
-
2015
- 2015-12-25 CN CN201511003923.3A patent/CN105654017B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951056A (en) * | 1994-10-14 | 1999-09-14 | Olympus Optical Co., Ltd. | Information reproduction system for reproducing a two-dimensional, optically readable code |
CN101197004A (zh) * | 2007-12-25 | 2008-06-11 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
CN104504428A (zh) * | 2014-06-22 | 2015-04-08 | 广州市沃希信息科技有限公司 | 一种基于二维码的信息传输方法、系统及移动终端 |
CN105117751A (zh) * | 2015-08-27 | 2015-12-02 | 努比亚技术有限公司 | 二维码传输方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460441A (zh) * | 2018-02-01 | 2018-08-28 | 王伟 | 双z二维码结构 |
CN110633605A (zh) * | 2018-06-25 | 2019-12-31 | 视联动力信息技术股份有限公司 | 一种图像处理方法和装置 |
CN110650464A (zh) * | 2018-06-27 | 2020-01-03 | 成都华迈通信技术有限公司 | 摄像机识别并配置wifi网络的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105654017B (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1954339B (zh) | 用于将图像从低动态范围转换为高动态范围的方法和系统 | |
CN111428781A (zh) | 遥感影像地物分类方法及系统 | |
KR101169140B1 (ko) | 문자 영역 추출을 위한 영상 생성 장치 및 방법 | |
CN103366170A (zh) | 图像二值化处理装置及其方法 | |
CN111372080B (zh) | 雷达态势图的处理方法、装置、存储介质和处理器 | |
CN101448120A (zh) | 一种图表视频的动态生成系统 | |
CN108806638B (zh) | 一种图像的显示方法及其装置 | |
US7715624B2 (en) | Recognizing or reproducing a character's color | |
CN108345888A (zh) | 一种连通域提取方法及装置 | |
CN106506901A (zh) | 一种显著性视觉注意模型的混合式数字图像半色调方法 | |
CN106203454A (zh) | 证件版式分析的方法及装置 | |
CN105654017A (zh) | 二维码传输方法和系统 | |
CN106530311B (zh) | 切片图像处理方法及装置 | |
CN116188808B (zh) | 图像特征提取方法和系统、存储介质及电子设备 | |
CN104637066A (zh) | 基于序贯细化的二值图像快速骨架提取方法 | |
CN113596573A (zh) | 图像处理方法、装置、电子设备和计算机可读存储介质 | |
CN104281865A (zh) | 一种生成二维码的方法与设备 | |
US6950210B2 (en) | Method and apparatus for adaptively binarizing color document images | |
CN102542528B (zh) | 一种图像转换处理方法及系统 | |
CN107220934A (zh) | 图像重建方法及装置 | |
CN109741315A (zh) | 一种基于深度强化学习的无参考图像质量客观评价方法 | |
WO2018151043A1 (ja) | 画像処理方法、及びコンピュータプログラム | |
CN106161875B (zh) | 图像处理装置与方法 | |
CN116664431A (zh) | 一种基于人工智能的图像处理系统及方法 | |
CN107948652B (zh) | 一种进行图像转换的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |