1.一种基于图像处理的树状节点识别方法,其特征在于包括如下步骤:
步骤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。
2.根据权利要求1所述的一种基于图像处理的树状节点识别方法,其特征在于步骤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类;多个内容行和空白行构成了树形结构节点行。