一种基于图像处理的树状节点识别方法与流程

文档序号:12670515阅读:755来源:国知局
一种基于图像处理的树状节点识别方法与流程

本发明属于软件自动化测试技术领域,尤其涉及一种基于图像处理的树状节点识别方法。



背景技术:

树状结构是指一个数据集合以及在该集合上存在的一种关系。集合中的各个元素称为树的节点,同一级节点之间没有直接的关系,只有一定的排序顺序。

目前,大部分应用程序会使用可视化操作界面。在可视化界面中,很多应用程序都会使用树状结构组织各种子项,例如文件等。如果能自动识别这些树状结构,有助于实现图形化界面自动化操作。如何实现对树状结构进行自动化识别是目前有待解决的问题。



技术实现要素:

针对现有技术中存在的上述问题,本发明的目的是提供一种基于图像处理的树状结点识别方法,它解决用户需要手动操作以树形结构样式来显示图形界面的问题,有助于实现图形化界面的自动化测试。

所述的一种基于图像处理的树状节点识别方法,其特征在于包括如下步骤:

步骤1:对像素行进行标记,得到内容行和空白行,多个内容行和空白行构成了树形结构节点行;

步骤2:根据式(3)、(4)和(5)计算得到树形结构节点中内容行的集合O={<tq,bq,>|q=1,2,...,d,tq∈{0,1,…,h-1},bq∈{0,1,…,h-1}}:

tp<bp<tr<br,若r>p且<tp,bp>∈O且<tr,br>∈O (3)

kx=1,若x∈[tq,bq]且kx∈K (4)

bq-tq>Lmin (5)

其中,d表示树形结构节点的数量,tq和bq分别表示第q个树形结构节点在灰度图P中对应位置的像素起始行和结束行的行号,Lmin表示预设的树形结构节点行的高度阈值;

步骤3:计算节点行行高H和第一个节点行首行行号F,具体为:

步骤3.1:根据式(6)和(7)计算树形结构节点中行号连续的内容行行数平均值r:

式中,Sum表示内容行的数量;

步骤3.2:设置树形结构节点行高H和首行行号F的拟合区间分别为和V2=(0,r);

步骤3.3:令行号集合E与空白行数SE的映射集为Efh={e|e=f+h*k,e<Sum,k=1,2,...,d},其中集合Efh表示行高为h、首行序号为f时的行号集合,e表示行序号,表示行号集合Efh中空白行的数量;

步骤3.4:根据式(8)得到行高H和首行行号F:

H=h1,F=f1,若且当时,f1<f2(8)

步骤4:对灰度图P进行树形结构节点行分行,得到映射集L={<lti,lbi>|lti=F+H*(i-1),lbi=F+H*i-1,i=1,2,...,d},其中<lti,lbi>表示第i节点行中像素行行号集合,lti和lbi分别表示第i节点行的首行和末行序号;

步骤5:识别树状节点的阶,具体为:

步骤5.1:设树形结构共有m个层级,层级的边界纵坐标集合LX={lxi|i=0,1,2,...,m},其中lx0表示第1层级的左边界,lx1表示第1层级的右边界,lxm表示第m层级的右边界;

步骤5.2:对所有节点行图标可能存在位置区域进行截图,令集合Lg={<bpq,Repq>|p=1,2,...,d,q=1,2,...,m},Repq={gab|lxq-1<a<lxq,ltp<b<lbp},其中bpq表示图标的行号和层级为p和q,Repq表示第p节点行第q个层级图标区域的截图,gab表示灰度图片P中第a行第b列的像素灰度值;

步骤5.3:对图标集合Lg逐行判断区域内是否存在图标;若第i区域存在图标,则该行的阶度为i。

所述的一种基于图像处理的树状节点识别方法,其特征在于步骤1)对像素行进行标记的具体过程为:

步骤1.1:对树形结构所在的区域进行截图,并将截图进行灰度化,得到灰度图P,其分辨率为w*h;

步骤1.2:令P={Gi|i=0,1,2,...,h-1},Gi={gij|j=0,1,2,...,w-1},其中Gi表示灰度图P的第i行像素集,gij表示灰度图P中第i行第j列像素的灰度值;

步骤1.3:根据式(1)和(2)对Gi(i=0,1,2,…,h-1)进行标记,得到集合K={ki|i=0,1,2,...,h-1}:

式中,表示Gi中像素的平均灰度值,ki表示与Gi对应的标记结果,当ki=1时,称Gi为内容行,ki≠1时为空白行,多个空白行和多个内容行把像素行分成2类;多个内容行和白行构成了树形结构节点行。

有益效果呢:

本发明通过采用上述方法,得到的基于图像处理的树状结点识别方法,它解决用户需要手动操作以树形结构样式来显示图形界面的问题,有助于实现图形化界面的自动化测试。

附图说明

图1为本发明优选实施例树状结构图;

图2为本发明的经过步骤1处理后的树状结构图像;

图3为本发明的经过步骤3处理后的树状结构图像;

图4为本发明的经过步骤5处理后的树状结构图像。

具体实施方式

下面结合实施例来详细阐述本发明的基于图像处理的树形结构识别方法的具体实施方式。

步骤1:对像素行进行标记,具体为:

步骤1.1:对树形结构所在的区域进行截图,并将截图进行灰度化,得到灰度图P,其分辨率为w*h;在本实施例中,截取的树形结构区域如图1所示;

步骤1.2:令P={Gi|i=0,1,2,...,h-1},Gi={gij|j=0,1,2,...,w-1},其中Gi表示灰度图P的第i行像素集,gij表示灰度图P中第i行第j列像素的灰度值;

步骤1.3:根据式(1)和(2)对Gi(i=0,1,2,…,h-1)进行标记,得到集合K={ki|i=0,1,2,...,h-1}:

式中,表示Gi中像素的平均灰度值,ki表示与Gi对应的标记结果,当ki=1时,称Gi为内容行,ki≠1时为空白行,多个空白行和多个内容行把像素行分成2类;多个内容行和空白行构成了树形结构节点行;在本实施例中,将灰度图片中的空白行灰度值设为0,内容行不变,结果如图2所示;

步骤2:根据式(3)、(4)和(5)计算得到树形结构节点中内容行的集合O={<tq,bq,>|q=1,2,...,d,tq∈{0,1,…,h-1},bq∈{0,1,…,h-1}}:

tp<bp<tr<br,若r>p且<tp,bp>∈O且<tr,br>∈O (3)

kx=1,若x∈[tq,bq]且kx∈K (4)

bq-tq>Lmin (5)

其中,d表示树形结构节点的数量,tq和bq分别表示第q个树形结构节点在灰度图P中对应位置的像素起始行和结束行的行号,Lmin表示预设的树形结构节点行的高度阈值;在本实施例中,Lmin值为10,d值为26;

步骤3:计算节点行行高H和第一个节点行首行行号F,具体为:

步骤3.1:根据式(6)和(7)计算树形结构节点中行号连续的内容行行数平均值r:

式中,Sum表示内容行的数量;在本实施例中,Sum值为321,近似行高r=321/26,取整后得到r=13;

步骤3.2:设置树形结构节点行高H和首行行号F的拟合区间分别为和V2=(0,r);

步骤3.3:令行号集合E与空白行数SE的映射集为Efh={e|e=f+h*k,e<Sum,k=1,2,...,d},其中集合Efh表示行高为h、首行序号为f时的行号集合,e表示行序号,表示行号集合Efh中空白行的数量;

步骤3.4:根据式(8)得到行高H和首行行号F:

H=h1,F=f1,若且当时,f1<f2(8)

在本实施例中,F=1,H=18;将步骤1中灰度图片P中分界行像素值改为0,结果如图3所示;

步骤4:对灰度图P进行树形结构节点行分行,得到映射集L={<lti,lbi>|lti=F+H*(i-1),lbi=F+H*i-1,i=1,2,...,d},其中<lti,lbi>表示第i节点行中像素行行号集合,lti和lbi分别表示第i节点行的首行和末行序号;在本实施例中,映射集L={<lti,lbi>|lti=18*i-17,lbi=18*i,i=1,2,...,26};

步骤5:识别树状节点的阶,具体为:

步骤5.1:设树形结构共有m个层级,层级的边界纵坐标集合LX={lxi|i=0,1,2,...,m},其中lx0表示第1层级的左边界,lx1表示第1层级的右边界,lxm表示第m层级的右边界;在本实施例中,树状节点共有4个层级,LX={17,34,51,66,82},将图3层级边界所在列像素值改为0,结果如图4所示;

步骤5.2:对所有节点行图标可能存在位置区域进行截图,令集合Lg={<bpq,Repq>|p=1,2,...,d,q=1,2,...,m},Repq={gab|lxq-1<a<lxq,ltp<b<lbp},其中bpq表示图标的行号和层级为p和q,Repq表示第p节点行第q个层级图标区域的截图,gab表示灰度图片P中第a行第b列的像素灰度值;

步骤5.3:对图标集合Lg逐行判断区域内是否存在图标;若第i区域存在图标,则该行的阶度为i。

本说明书实施例所述的内容仅仅是对本发明构思实现形式的举例,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能想到的等同技术手段。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1