第30卷第3期 金陵科技学院学报 Vol.30.No.3 2014年9月 JOURNAL OF JINLING INSTITUTE OF TECHNOLOGY Sep.,2014 高形变二维码识别算法设计与实现 于继明12,徐楠12,陈硕1 (1.金陵科技学院智能科学与控制工程学院,江苏南京211169: 2.江苏省信息分析工程实验室,江苏南京211169) 摘要:针对QR(Quick Response)二维码在高偏离拍摄角度下难以识别的问题,设计一种在高偏离拍摄角度下 正确识别的算法。该算法通过对图像二值化处理、形态学处理、边缘检测、Hough变换和射影几何变换5个步 骤,实现对图像的高准确率识别,使用java语言环境和移动终瑞的android环境下对算法进行仿真与算法验证, 并实现了通过扫描或读取二维码图像来写入、查找信息等操作。 关键词:QR二维码:图像识别算法:线性形变 中图分类号:TP393 文献标识码:A 文章编号:1672-755X(2014)03-0014-05 A Recognition Algorithm for Highly Deformed Two-Dimensional Code YU Ji-ming12,XU Nan'.2,CHEN Shuo (1.Jingling Institute of Technology,Nanjing 211169,China: 2.The Information Analysis Engineering Laboratory of Jiangsu Province,Nanjing 211169,China) Abstract:A recognition algorithm at a highly deviated shooting angle is proposed,which can solve the puzzle of identification for QR (Quick Response)two-dimensional code in case of high-angle shooting deviation from itself.The image can be recognized with high accuracy through the method with five procedures to process the image,i.e.,binarization processing, morphological processing,edge detection,Hough transformation and projective geometry trans- formation.Then the algorithm has been simulated and evaluated by using java language envi- ronment and android mobile terminal.By scanning or reading two-dimensional code image,the i- dentification function can be realized with the algorithm. Key words:QR two-dimensional code;image recognition algorithm;linear deformation 各种各样的二维码自诞生开始迅速成为了信息技术领域最实用和有效的成果之一,已经渗透到人民 生活和国民经济的各个领域中。不论在商品零售、制造业等领域,还是在供应链管理、电子商务和现代物 流等各个环节,二维码已经扮演了不可或缺的重要角色]。为了实现对二维码的识别,人们使用图像采集 设备(如数码相机、激光扫描器、面阵CCD等成像设备),得到含有二维码的图像,然后经过定位(预处理、 定位、角度纠正和特征值提取)、分割和解码3个步骤实现对二维码的识别。现在广泛使用的二维码识别 算法具有快速识别的特性,但对于高偏离拍摄角度的识别,这些算法不能快速有效地得出解码结果。当偏 收稿日期:2014-0911 基金项目:金陵科技学院博士启动基金“基于物联网应用的智能校园路灯系统研究”:金陵科技学院2013年省级大学 生科技创新项目“智能苗床系统研究”(201313573010) 作者简介:于继明(1976一),男,河南省罗山人,副教授,博士,CCF会员(E200038613M),主要从事物联网应用技术 研究。 ?1994-2015 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第30卷 第3期 2014年9月 金 陵 科 技 学 院 学 报 JOURNALOFJINLINGINSTITUTEOFTECHNOLOGY Vol.30,No.3 Sep.,2014 高形变二维码识别算法设计与实现 于继明1,2,徐 楠1,2,陈 硕1 (1.金陵科技学院智能科学与控制工程学院,江苏 南京 211169; 2.江苏省信息分析工程实验室,江苏 南京 211169) 摘 要:针对 QR(QuickResponse)二维码在高偏离拍摄角度下难以识别的问题,设计一种在高偏离拍摄角度下 正确识别的算法。该算法通过对图像二值化处理、形 态 学 处 理、边 缘 检 测、Hough变换和射影几何变换5个步 骤,实现对图像的高准确率识别,使用java语言环境和移动终端的android环境下对算法进行仿真与算法验证, 并实现了通过扫描或读取二维码图像来写入、查找信息等操作。 关键词:QR二维码;图像识别算法;线性形变 中图分类号:TP393 文献标识码:A 文章编号:1672-755X(2014)03-0014-05 收稿日期:2014-09-11 基金项目:金陵科技学院博士启动基金“基于物联网应用的智能校园路灯系统研究”;金陵科技学院2013年省级大学 生科技创新项目“智能苗床系统研究”(201313573010) 作者简介:于继明(1976-),男,河 南 省罗 山 人,副 教 授,博 士,CCF会员(E200038613M),主要从事物联网应用技术 研究。 ARecognitionAlgorithmforHighlyDeformedTwo-DimensionalCode YUJi-ming1,2,XU Nan1,2,CHENShuo (1.JinglingInstituteofTechnology,Nanjing211169,China; 2.TheInformationAnalysisEngineeringLaboratoryofJiangsuProvince,Nanjing211169,China) Abstract:Arecognitionalgorithmatahighlydeviatedshootingangleisproposed,whichcan solvethepuzzleofidentificationforQR (Quick Response)two-dimensionalcodeincaseof high-angleshootingdeviationfromitself.Theimagecanberecognized withhighaccuracy throughthemethodwithfiveprocedurestoprocesstheimage,i.e.,binarizationprocessing, morphologicalprocessing,edgedetection,Houghtransformationandprojectivegeometrytrans- formation.Thenthealgorithmhasbeensimulatedandevaluatedbyusingjavalanguageenvi- ronmentandandroidmobileterminal.Byscanningorreadingtwo-dimensionalcodeimage,thei- dentificationfunctioncanberealizedwiththealgorithm. Keywords:QRtwo-dimensionalcode;imagerecognitionalgorithm;lineardeformation 各种各样的二维码自诞生开始迅速成为了信息技术领域最实用和有效的成果之一,已经渗透到人民 生活和国民经济的各个领域中。不论在商品零售、制造业等领域,还是在供应链管理、电子商务和现代物 流等各个环节,二维码已经扮演了不可或缺的重要角色[1]。为了实现对二维码的识别,人们使用图像采集 设备(如数码相机、激光扫描器、面阵 CCD等成像设备),得到含有二维码的图像,然后经过定位(预处理、 定位、角度纠正和特征值提取)、分割和解码3个步骤实现对二维码的识别。现在广泛使用的二维码识别 算法具有快速识别的特性,但对于高偏离拍摄角度的识别,这些算法不能快速有效地得出解码结果。当偏
第3期 于继明,等:高形变二维码识别算法设计与实现 15 离角度较大、焦距较小时,图形的形变不仅仅只是普通的缩放,还会是旋转形变或仿射形变了。因此,研究 与设计高形变角度下的二维码图形识别算法具有重要的意义。 1QR二维码介绍及常用算法 11QR二维码原理 QR二维码是Denso Wave于1994年在丰田公司发明,是一种矩阵式的二维码符号。QR二维码不 仅具有识别扫描速度快、信息容量较大、可靠性较高、成本较低的特性, 它还可表示汉字及图像等多种文字信息,并且其保密防伪性强,使用也 很方便。诞生初期主要在中、日、韩地区发展,后迅速传至欧美地区。 QR二维码符号共有40种版本规格,分别为版本1一40。版本1的规格 为21×21个模块,版本2为25×25个模块,以此类推,每1版本符号总 是比前1版本每边增加4个模块,一直到版本40,版本40的规格为177 ×177个模块。图1为版本2的示意图(25×25个模块)。 二维码的编码过程包括:1)数据采样计算,确定待编码信息的符号 类型(包括中文、英文等),按照相应的字符集编码规则分别转换成对应 字符或数字。2)选择一个纠错等级L到H,一般情况下,纠错等级越高 其真实数据的容量越小。3)数据编码,将所有的数据字符转换为位流, 图1版本2的QR码 每8位一个码字成为一组,所有数据最终转化的整体构成一个数据的码 Fig 1 QR code for version 2 字序列。4)纠错编码,将码字序列分块,并根据纠错等级和分块的码 字,产生对应的纠错码字,并把纠错码字加入到数据码字序列的后面。5)构造最终数据阵列,按次序放入 分块中,按规定把数据分块,将码字模块、定位图像、探测图形、分隔符依次放入矩阵中。 1.2QR二维码识别中的基本算法 12.1图像二值化算法图像二值化是指用通过研究图像的灰度分布来研究灰度图像的一种图像数据 处理手段,设定某一阈值或为若干区域设定若干阈值,将灰度图像的每个像素点划分成大于阈值的像素点 集、小于阈值的像素点集两个部分。每个像素点的值要么是0,要么是255。二值化操作之后,图像将呈现 出鲜明的黑白效果。 12.2边缘检测算法物体的边缘是指以局部特征不连续性出现的部分,是区分不同区域的重要参数。 传统的边缘检测(如一介边缘算子)利用了边缘是图像灰度变化最剧烈的特点,对图像各个像素点求导数 或者二阶导数来确定边缘点集。常用的边缘提取梯度算子有:Robert算子,Sobel算子,Prewitt算 子等。 边缘检测算法是基础的图像分割算法,是进行各种几何变换、特征提取的首要工作,边缘检测算法为 各种图像分割需求提供了较好的支持,对于本身就是黑白图像、灰度又不是很连续的二维码图像而言,上 述算法均能够取得非常好的边缘检测效果。从边缘检测的时间复杂度上看,每一种边缘检测算法都具有 较好的时间效率和空间效率,在进行图像处理时,边缘检测算法一般不会成为影响整个程序运行速度的 瓶颈。 2高偏离角度的二维码识别算法设计 从识别算法的角度,二维码识别算法应当满足以下需求:1)二维码图像的高效二值化处理:2)能够 有效地定位到二维码所在的大概区域,排除与识别信息无关的图像区域;3)能够实现对任意拍摄角度的 图像的正则复原操作,复原结果应当尽量减小与原图像的误差:4)将复原的图像使用二维码转码包进行 转码。识别过程见图2。 21二值化处理算法设计 在二值化处理过程中,针对QR二维码的特性,采用最大类间方差的方法处理。首先获取原图像的灰 ?1994-2015 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第3期 于继明,等:高形变二维码识别算法设计与实现 离角度较大、焦距较小时,图形的形变不仅仅只是普通的缩放,还会是旋转形变或仿射形变了。因此,研究 与设计高形变角度下的二维码图形识别算法具有重要的意义。 1 QR二维码介绍及常用算法 1.1 QR二维码原理 QR二维码是 DensoWave于1994年在丰田公司发明,是一种矩阵式的二维码符号。QR 二维码不 图1 版本2的 QR码 Fig.1 QRcodeforversion2 仅具有识别扫描速度快、信息容量较大、可靠性较高、成本较低的特性, 它还可表示汉字及图像等多种文字信息,并且其保密防伪性强,使用也 很方便。诞生 初 期 主 要 在 中、日、韩 地 区 发 展,后 迅 速 传 至 欧 美 地 区。 QR二维码符号共有40种版本规格,分别为版本1-40。版本1的规格 为21×21个模块,版本2为25×25个模块,以此类推,每1版本符号总 是比前1版本每边增加4个模块,一直到版本40,版本40的规格为177 ×177个模块。图1为版本2的示意图(25×25个模块)。 二维码的编码过程包括:1)数据采样计算,确定待编码信息的符号 类型(包括中文、英文等),按照相应的字符集编码规则分别转换成对应 字符或数字。2)选择一个纠错等级 L到 H,一般情况下,纠错等级越高 其真实数据的容量越小。3)数据编码,将所有的数据字符转换为位流, 每8位一个码字成为一组,所有数据最终转化的整体构成一个数据的码 字序列。4)纠错编 码,将 码 字 序 列 分 块,并 根 据 纠 错 等 级 和 分 块 的 码 字,产生对应的纠错码字,并把纠错码字加入到数据码字序列的后面。5)构造最终数据阵列,按次序放入 分块中,按规定把数据分块,将码字模块、定位图像、探测图形、分隔符依次放入矩阵中。 1.2 QR二维码识别中的基本算法 1.2.1 图像二值化算法 图像二值化是指用通过研究图像的灰度分布来研究灰度图像的一种图像数据 处理手段,设定某一阈值或为若干区域设定若干阈值,将灰度图像的每个像素点划分成大于阈值的像素点 集、小于阈值的像素点集两个部分。每个像素点的值要么是0,要么是255。二值化操作之后,图像将呈现 出鲜明的黑白效果。 1.2.2 边缘检测算法 物体的边缘是指以局部特征不连续性出现的部分,是区分不同区域的重要参数。 传统的边缘检测(如一介边缘算子)利用了边缘是图像灰度变化最剧烈的特点,对图像各个像素点求导数 或者 二 阶 导 数 来 确 定 边 缘 点 集。常 用 的 边 缘 提 取 梯 度 算 子 有:Robert算 子,Sobel算 子,Prewitt算 子等[2]。 边缘检测算法是基础的图像分割算法,是进行各种几何变换、特征提取的首要工作,边缘检测算法为 各种图像分割需求提供了较好的支持,对于本身就是黑白图像、灰度又不是很连续的二维码图像而言,上 述算法均能够取得非常好的边缘检测效果。从边缘检测的时间复杂度上看,每一种边缘检测算法都具有 较好的时间效率和空间效率,在进行图像处理时,边缘检测算法一般不会成为影响整个程序运行速度的 瓶颈。 2 高偏离角度的二维码识别算法设计 从识别算法的角度,二维码识别算法应当满足以下需求:1)二维码图像的高效二值化处理;2)能够 有效地定位到二维码所在的大概区域,排除与识别信息无关的图像区域;3)能够实现对任意拍摄角度的 图像的正则复原操作,复原结果应当尽量减小与原图像的误差;4)将复原的图像使用二维码转码包进行 转码。识别过程见图2。 2.1 二值化处理算法设计 在二值化处理过程中,针对 QR二维码的特性,采用最大类间方差的方法处理。首先获取原图像的灰 51
16 金陵科技学院学报 第30卷 度直方图,数学描述为记录灰度为i的像素点的数目为c:(i= 开始○ 0,1,2,.255)。对某一阈值T,将原图像分为两类(背景与 使取图像☑ 前景),计算阈值T下的类间方差值,类间方差计算公式为 (T)=6(ho-u)2+(出-u)2… (1) 二值化处理 其中, 形态学渲染 255 Ci 边缘检测 i0 -T Hough变换 Ci 射彤变换 让阈值T在灰度可行域内变化,使得方差σ(T)最大的T 取样转码 为最优解。该算法描述如下: 1)计算原图像的灰度直方图,记为c:(i=0,1,2,..255) 结束 ,灰度阅值迭代初始值为T=0,阈值初值为。=一1,最佳阈 图2识别算法流程 值初值记为T。=0。 Fig.2 The procedure of recognition algorithm 2)按照式(1)计算给定阈值T下的类间方差。(T),若σ(T)>,则将T。值设为T。 3)若T未达到灰度上限,则T增加灰度值,返回2):否则执行下一步。 经过上述3步,得到T。即为最佳阈值。 22图像形态学渲染 为了使二维码区域能够凸显出来,需要二维码区域进行一次腐蚀、膨胀的操作。QR二维码的编码规 则具有均匀分布的特点,可以各个像素点的周围圆周点集作为膨胀因子,获得较好的膨胀效果;本算法取 对前景点集A以B作为膨胀元素,膨胀操作为[冈 A⊕B={X|Bx∩A≠☑,X∈A}… (2) 其中Bx={X+了|Y∈B},结合QR码的图像特点,取膨胀因子B={X1X1?+X22=p},对 于膨胀因子B而言,可以采用圆的参数方程迭代的方式来计算它的点集,具体算法步骤如下: 1)取定半径参数R,角度离散尺度D。-一&0,初始选代角度a=0: 2)由X=R。cos(a)和Y=R。sin(a)计算点(X,Y),把该点加入到B中; 3)角度α增加一个离散尺度,返回2)继续计算,直到离散尺度值全部迭代完毕。 23边缘检测算法 为了纠正偏离角度的图片,需对原图像进行射影几何变换。取4个点(任意3点不共线)的坐标值,使 用最为简单的一阶边缘算子来计算边缘。某点的梯度E(x,y)定义为 E(x,y)=|E(x+1,y)-E(x,y)+E(x,y+1)-E(x,y)|… (3) 按照式(3)进行迭代,对每个像素点的梯度判断是否为0确定边缘点集。 24 Hough变换算法 根据边缘检测算法取得边缘后,只能够以直线相交的方法来计算4个顶点。应用Hough变换,可将 边缘点集映射到直线参数空间,通过计算参数空间的极值取得直线的参数坐标值。 对边缘点集中的点X=(x,y),应用直线的相距式p=xcos0+ysi0中的参数,绘制直线对应于参数 空间的曲线,将曲线离散化(离散尺度取忍0,参数范围为日∈[0,)),并将曲线上的点与该点对应的二 维数组的值累加1次。具体步骤如下: 1)初始化参数空间PSpace(i,j)(全部为0),0∈[0,π),p∈[-√r十y,√x十y],再将p增 ?1994-2015 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
金 陵 科 技 学 院 学 报 第30卷 图2 识别算法流程 Fig.2 Theprocedureofrecognitionalgorithm 度直方图,数学描述为记录灰度为i的像素点的数目为ci(i= 0,1,2,...255)。对某一阈值T ,将原图像分为两类(背景与 前景),计算阈值T 下的类间方差值,类间方差计算公式为 σ(T)= w0 (μ0 -μ)2 +w1 (μ1 -μ)2…… (1) 其中, w0 = ∑ T i=0 ci ∑ 255 i=0 ci ,w1 = ∑ 255 i=T+1 ci ∑ 255 i=0 ci ,μ0 = ∑ T i=0 ici ∑ 255 i=0 ci ,μ1 = ∑ 255 i=T+1 ici ∑ 255 i=0 ci ,μ= ∑ 255 i=0 ici ∑ 255 i=0 ci 让阈值T 在灰度可行域内变化,使得方差σ(T)最大的T 为最优解。该算法描述如下: 1)计算原图像的灰度直方图,记为ci(i=0,1,2,...255) ,灰度阈值迭代初始值为T=0,阈值初值为σ0 =-1,最佳阈 值初值记为T0 =0。 2)按照式(1)计算给定阈值T 下的类间方差σ(T),若σ(T)>σ0 ,则将T0 值设为T 。 3)若T 未达到灰度上限,则T 增加灰度值,返回2);否则执行下一步。 经过上述3步,得到T0 即为最佳阈值。 2.2 图像形态学渲染 为了使二维码区域能够凸显出来,需要二维码区域进行一次腐蚀、膨胀的操作。QR 二维码的编码规 则具有均匀分布的特点,可以各个像素点的周围圆周点集作为膨胀因子,获得较好的膨胀效果;本算法取 对前景点集A 以B 作为膨胀元素,膨胀操作为[2] A B = {X → |BX ∩A ≠ ,X → ∈A}…… (2) 其中BX = {X → +Y → |Y → ∈B},结合 QR码的图像特点,取膨胀因子B = {X → |X1 2 +X2 2 =ρ 2},对 于膨胀因子B 而言,可以采用圆的参数方程迭代的方式来计算它的点集,具体算法步骤如下: 1)取定半径参数R0 ,角度离散尺度 D0 = π 180,初始迭代角度α=0; 2)由 X =R0cos(α)和Y =R0sin(α)计算点 (X,Y),把该点加入到B 中; 3)角度α增加一个离散尺度,返回2)继续计算,直到离散尺度值全部迭代完毕。 2.3 边缘检测算法 为了纠正偏离角度的图片,需对原图像进行射影几何变换。取4个点(任意3点不共线)的坐标值,使 用最为简单的一阶边缘算子来计算边缘。某点的梯度E(x,y)定义为 E(x,y)= E(x+1,y)-E(x,y)+E(x,y+1)-E(x,y) …… (3) 按照式(3)进行迭代,对每个像素点的梯度判断是否为0确定边缘点集。 2.4 Hough变换算法 根据边缘检测算法取得边缘后,只能够以直线相交的方法来计算4个顶点。应用 Hough变换,可将 边缘点集映射到直线参数空间,通过计算参数空间的极值取得直线的参数坐标值。 对边缘点集中的点 X → = (x,y),应用直线的相距式ρ=xcosθ+ysinθ中的参数,绘制直线对应于参数 空间的曲线,将曲线离散化(离散尺度取 π 180,参数范围为θ∈ [0,π)),并将曲线上的点与该点对应的二 维数组的值累加1次。具体步骤如下: 1)初始化参数空间PSpace(i,j)(全部为0),θ∈ [0,π),ρ∈ [- x2 m +y2 槡 m , x2 m +y2 槡 m ],再将ρ增 61
第3期 于继明,等:高形变二维码识别算法设计与实现 17 加一个√x十y值,使之落在正数区间范围; 2)对边缘点集中的每一个点P(x,),带入p=xcos0+sin0,步长为忍0,0在[0,)中离散变化, 得到180个点: 3)将步骤2)得到的点全部四舍五入取整数,绘制到参数空间中。 在实际处理图像时,每条直线在图像中可能凸显的并不明显,有可能出现两对比较相近的参数表示的 实际上是同一直线,为解决这一问题,在选择了某个极大值对应的参数后,应当屏蔽这些点。实际操作时 将屏蔽点的值设为小于0来做屏蔽处理。 Hough变换结束后,为了能够在射影变换中使得4个交点与4个正则目标点一一对应,需要求解4 线在图像面内的交点以及交点的时钟顺序。求交点的算法步骤如下: 1)对4条直线的参数两两运算,记录图像内交点,可得到4个交点: 2)对于已经求得的4个交点pi,p2,p,p:,计算pp2与pp向量积的模长,pp2×pp= x2一x一y =M,p1p:与1p=M2,若M与M异号,说明线段p1p与p2p:相交,否则选择 xs-x1 ys-y1 其他点替换p点,直到M·M2<0为止; 3)经过步骤2)操作的点p,2,p,p:即为时钟序,当p1p2与pp向量积的带方向模长大于0时为 逆时钟序,当pp2与p:p:向量积小于0时为顺时钟序。 25射影变换算法 对于平面π的4个点(,,,)(齐次坐标)到平面x的4个点(,,,)确定一个射影变 换的充要条件是云,云和了广的任意3点不共线,且射影变换矩阵表达式为1: H=(,,agg,多)》 Pr Pa Ps (4) 其中p=(》1,p-(,,)式 应用式(4),对于平面上的4个点,求解射影变换距离H,对于目标平面(正则)上的每一个点p= (x,y),计算H1P是否为图像平面的前景点,如果是,就将目标平面这一点设置为前景点,否则设置为 背景点。应用本步骤可对图像进行校正。 3模块设计与仿真实现 31模块关系图 本算法在Eclipse环境实现,根据图2流程,设计模块之间调用关系见图3。 Recognition Binary Morpholog Edge Search Hough Projective Location Matrix Segment Point Set Segment Set 图3模块调用关系 Fig.3 Module call ?1994-2015 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第3期 于继明,等:高形变二维码识别算法设计与实现 加一个 x2 m +y2 槡 m 值,使之落在正数区间范围; 2)对边缘点集中的每一个点P(x,y),带入ρ=xcosθ+ysinθ,步长为 π 180,θ在 [0,π)中离散变化, 得到180个点; 3)将步骤2)得到的点全部四舍五入取整数,绘制到参数空间中。 在实际处理图像时,每条直线在图像中可能凸显的并不明显,有可能出现两对比较相近的参数表示的 实际上是同一直线,为解决这一问题,在选择了某个极大值对应的参数后,应当屏蔽这些点。实际操作时 将屏蔽点的值设为小于0来做屏蔽处理。 Hough变换结束后,为了能够在射影变换中使得4个交点与4个正则目标点一一对应,需要求解4 线在图像面内的交点以及交点的时钟顺序。求交点的算法步骤如下: 1)对4条直线的参数两两运算,记录图像内交点,可得到4个交点; 2)对于已 经 求 得 的 4 个 交 点 p →1,p →2,p →3,p →4 ,计 算 p1p→2 与 p1p→3 向 量 积 的 模 长,p1p→2 ×p1p→3 = x2 -x1 y2 -y1 x3 -x1 y3 -y1 =M1 ,p1p→4 与p1p→3 = M2 ,若 M1 与 M2 异号,说明线段p1p3 与p2p4 相交,否则选择 其他点替换p3 点,直到 M1·M2 <0为止; 3)经过步骤2)操作的点p →1,p →2,p →3,p →4 即为时钟序,当p1p→2 与p1p→3 向量积的带方向模长大于0时为 逆时钟序,当p1p→2 与p1p→3 向量积小于0时为顺时钟序。 2.5 射影变换算法 对于平面π的4个点 (x→1,x→2,x→3,x→4)(齐次坐标)到平面π′的4个点 (x′→1,x′→2,x′→3,x′→4)确定一个射影变 换的充要条件是x→1,x→2,x→3,x→4 和x′→1,x′→2,x′→3,x′→4 的任意3点不共线,且射影变换矩阵表达式为[3-6]: H = (x′→1,x′→2,x′→3)diag( p′1 p1 , p′2 p2 , p′3 p3 )(x→1,x→2,x→3)-1 其中p = (x→1,x→2,x→3)-1x→4,p′ = (x′→1,x′→2,x′→3)-1x′→4 …… (4) 应用式(4),对于平面上 的4个 点,求解射影变换距离 H,对 于 目标 平 面(正 则)上 的 每 一 个 点 p → = (x,y)T ,计算 H-1 P → 是否为图像平面的前景点,如果是,就将目标平面这一点设置为前景点,否则设置为 背景点。应用本步骤可对图像进行校正。 3 模块设计与仿真实现 3.1 模块关系图 本算法在 Eclipse环境实现,根据图2流程,设计模块之间调用关系见图3。 图3 模块调用关系 Fig.3 Modulecall 71
18 金陵科技学院学报 第30卷 其中,Binary实现二值化功能,Edge Search实现边缘检测功能,Hough实现Hough变换。 32算法仿真结果 为了验证算法的正确性,取得普通形变二维码图形与高度形变图形进行识别比较。正常情况下,普通 形变时图形的识别结果见图4。 ▣▣ 图4变通形变识别测试结果 Fig.4 The recognition test results of flexible deformation 当获取的图形高度形变时,如图5所示,采用本算法流程,得到较理想结果,如图6所示。 州 回 ▣5®N 图5高度形变图像 图6高度形变图像识别结果 Fig.5 Highly deformed image Fig.6 The recognition results of highly deformed image 通过实例测试可以看出,对高度形变的图像,高形变二维码识别算法具有良好的识别结果,能够完成 传统识别算法难以完成的识别工作,提高了识别准确率与识别能力。 4结语 传统二维码识别算法能够在一个比较小的偏离角度下正确识别,但是对高度形变图形,却难以正确识 别。本算法对Q【二维码设计了识别过程,对图像处理算法给出了实现原理,并编码进行算法实现,验证 算法的正确性与识别能力。实验结果显示,使用本算法对非仿射变换的线性射影进行变换,能够弥补识别 率低的缺陷,实现更高的识别能力。 参考文献: [1]中国物品编码中心.二维条码技术与应用[M门.北京:中国计量出版社,2007 [2]Rafael C.Gonzalez..数字图像处理[M们.阮秋琦,译.2版.北京:电子工业出版社,2007 [3]吴朝福.计算机视觉中的数学方法[M门.北京:电子工业出版社,2011 [4]肖翔,刘晓明,王云柯.QR码图像的矫正与定位方法研究[].计算机科学,2007,23(2):18-20 [5]谷晓琳,黄明,戚海英.基于遗传算法的二维QR码图像识别[J].大连铁道学院学报,2005,12(3):35-38 [6]刘宁钟,杨静宇.基于傅里叶变换的二维条码识别[J].中国图像图形学报,2011,18(2):45一46 (责任编辑:马金玉) ?1994-2015 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
金 陵 科 技 学 院 学 报 第30卷 其中,Binary实现二值化功能,EdgeSearch实现边缘检测功能,Hough实现 Hough变换。 3.2 算法仿真结果 为了验证算法的正确性,取得普通形变二维码图形与高度形变图形进行识别比较。正常情况下,普通 形变时图形的识别结果见图4。 图4 变通形变识别测试结果 Fig.4 Therecognitiontestresultsofflexibledeformation 当获取的图形高度形变时,如图5所示,采用本算法流程,得到较理想结果,如图6所示。 图5 高度形变图像 Fig.5 Highlydeformedimage 图6 高度形变图像识别结果 Fig.6 Therecognitionresultsofhighlydeformedimage 通过实例测试可以看出,对高度形变的图像,高形变二维码识别算法具有良好的识别结果,能够完成 传统识别算法难以完成的识别工作,提高了识别准确率与识别能力。 4 结 语 传统二维码识别算法能够在一个比较小的偏离角度下正确识别,但是对高度形变图形,却难以正确识 别。本算法对 QR二维码设计了识别过程,对图像处理算法给出了实现原理,并编码进行算法实现,验证 算法的正确性与识别能力。实验结果显示,使用本算法对非仿射变换的线性射影进行变换,能够弥补识别 率低的缺陷,实现更高的识别能力。 参考文献: [1]中国物品编码中心.二维条码技术与应用 [M].北京:中国计量出版社,2007 [2]RafaelC.Gonzalez.数字图像处理[M].阮秋琦,译.2版.北京:电子工业出版社,2007 [3]吴朝福.计算机视觉中的数学方法[M].北京:电子工业出版社,2011 [4]肖翔,刘晓明,王云柯.QR 码图像的矫正与定位方法研究[J].计算机科学,2007,23(2):18-20 [5]谷晓琳,黄明,戚海英.基于遗传算法的二维 QR 码图像识别[J].大连铁道学院学报,2005,12(3):35-38 [6]刘宁钟,杨静宇.基于傅里叶变换的二维条码识别 [J].中国图像图形学报,2011,18(2):45-46 (责任编辑:马金玉) 81