按钮表获取方法及装置的制作方法

文档序号:6471915阅读:96来源:国知局

专利名称::按钮表获取方法及装置的制作方法
技术领域
:本发明涉及人机交互
技术领域
,尤其涉及一种按钮表获取方法及装置。
背景技术
:遥控器是一种用来远程控制设备的装置,用户通过操作遥控器方向键,可以进行按钮选择,被选中的按钮称为焦点按钮。表1所示为遥控器按钮表(以下简称按钮表),该表用于记录需要用遥控器方向键选择的按钮标识,按钮标识在按钮表中的位置决定了用户使用遥控器方向键选择按钮的方式。比如,当前焦点按钮的标识为9,若用户想选择标识为7的按钮,则用户需要按两次遥控器的向左键才可以选中标识为7的按钮,若用户想选择标识为3的按钮,则用户需要按一次遥控器的向上键才可以选中标识为3的按钮,其他方向的按钮选择方式同理。<table>tableseeoriginaldocumentpage11</column></row><table>表1由上述记载可知,获取按钮表是实现使用遥控器对按钮进行选择必须要解决的技术问题。目前,现有技术通常釆用手工方式获取按钮表首先,人工观察按钮在窗口中的排版情况,然后,根据观察到的排版情况,手工将按钮标识填写到按钮表对应位置。在对现有技术的研究和实践过程中,发明人发现采用人工方式获取按钮表存在按钮表生成效率过低的问题,原因在于,实际应用中需要为每一个窗口生成一个对应的按钮表,当窗口数量众多时,采用手工方式获取按钮表,需要花费大量的时间,因此,产生了按钮表生成效率过低的问题
发明内容本发明实施例要解决的技术问题是提供一种能够提高按钮表生成效率的按钮表获取方法及装置。为解决上述技术问题,本发明的目的是通过以下技术方案实现的本发明实施例提供了一种按钮表获取方法,该方法包括获取窗口中需要用遥控器选择的按钮组;将按钮组中所有按钮包围的区域划分为网格;获取按钮组中每个按钮的行列相交区域;确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。相应地,本发明实施例还提供了一种按钮表获取装置,该装置包括按钮组获取单元,用于获取窗口中需要用遥控器选择的按钮组;网格划分单元,用于将按钮组中所有按钮包围的区域划分为网格;相交区域获取单元,用于获取按钮组中每个按钮的行列相交区域;网格行列值确定单元,用于确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;按钮表生成单元,用于按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。上述技术方案具有如下有益效果本发明提供的获取按钮表的技术方案,先获取窗口中需要用遥控器选择的按钮,将按钮包围区域划分为网格,然后,获取按钮的行列相交区域,确定所述行列相交区域包围的网格的行值和列值,最后,按照所述行值和列值,在初始化按钮表中相应位置填入所述按钮的标识,至此,本发明提供的技术方案实现了根据窗口中的按钮排版方式自动生成按钮表,与人工获取按钮表的方式相比极大地提高了按钮表生成效率。图1所示为本发明实施例提供的按钮表获取方法流程12图2(a)所示为本发明实施例提供的按钮表获取方法流程图;图2(b)所示为本发明实施例提供的按钮表获取方法流程图;图3所示为本发明实施例提供的窗口坐标系和矩形化前的按钮;图4所示为本发明实施例提供的按钮组;图5所示为本发明实施例提供的将矩形化按钮包围区域划分为网格的示意图6所示为本发明实施例提供的矩形化按钮行相交线段示例;图8所示为本发明实施例提供的按钮表获取装置组成示意图。具体实施例方式为使本发明实施例的目的、技术方案、及优点更加清楚明白,以下参照附图对本发明实施例提供的技术方案进行详细说明。本发明提供了一种按钮表获取方法,采用该方法能够实现根据按钮在窗口上的排版情况,自动生成按钮表,请参见图1,该方法包括步骤101:获取窗口中需要用遥控器选择的按钮组,所述按钮组是窗口中所有需要用遥控器选^t奪的按钮的集合;步骤102:将按钮组中所有按钮包围的区域(按钮包围区域)划分为网格;步骤103:获取按钮组中每个按钮的行列相交区域;步骤104:确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;步骤105:按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。由于本发明提供的按钮表获取方法能够根据按钮在窗口上的排版情况,自动生成按钮表,与现有的人工获取按钮表的方法相比极大地提高了按钮表的生成效率。以上对本发明提供的自动获取按钮表的方法进行了介绍,以下结合具请参见图2,为本发明实施例提供的按钮表获取方法流程图,该方法包括如下步骤步骤201:建立窗口坐标系;其中,建立窗口坐标系的目的是为确定窗口(窗口是指当前正在生成按钮表的窗口)中每个按钮的坐标。为清楚地说明本发明提供的方法,以下如无特别说明,本实施例均以图3所示窗口坐标系为例。图3所示窗口坐标系采用以下方式建立将窗口左上顶点设为窗口坐标系的原点,将水平向右方向设为窗口坐标系的X轴正轴,将垂直向下方向设为窗口坐标系的Y轴正轴。在实际应用中,技术人员可以釆用其他形式的窗口坐标系。比如,以窗口左下顶点为窗口坐标系的原点,以水平向右方向为窗口坐标系的X轴正轴,以垂直向上方向为窗口坐标系的Y轴正轴等。步骤202:从窗口中获取需要用遥控器方向键选择的按钮组;由于需要用遥控器方向键选择的按钮会包括触发事件,因此,可以采用如下方法获取需要用遥控器方向键选择的按钮组判断按钮是否包括触发事件,如果包括,说明该按钮是需要用遥控器方向键选择的按钮,则将按钮加入按钮组,如果不包括,说明该按钮是不需要用遥控器方向键选择的按钮。其中,步骤202中的窗口指的是用户界面(UserInterface,UI)相关资源文件。本实施例在描述技术方案时采用"窗口"一词,仅为更形象的说明本发明提供的方法。步骤203:对按钮组中每个按钮进行矩形化,得到矩形化按钮;对按钮进行矩形化是为了提高按钮表生成速度,并简化按钮表生成流程。在本发明其他实施例中,亦可对按钮不进行矩形化,并不影响本发明提供的按钮表获取方法的实现。若采用图3所示窗口坐标系,则矩形化每个按^組的具体过程如下获取每个按钮在X轴和Y轴的最小坐标(xmin,ymin);14获取每个按钮在X轴和Y轴的最大坐标(xraax,ymax);将(u,ymin)设为矩形化按钮的左上顶点坐标,将(xmax,l)设为矩形化按钮的右下顶点坐标,得到矩形化按钮。图3所示为矩形化前的按钮,图4所示为矩形化后的按钮。值得注意的是,如果窗口中按钮的图形都是规则的矩形,则可以不执行步骤203,直接执行步骤204。步骤204:计算矩形化按钮包围区域(比如,图4虚线所示包围区域)划分为网格时,网格的行数和列数,并计算每个网格的网格中心点坐标,将网格中心点坐标填入网格中心点表相应位置,所述网格中心点表的行/列数分别等于网格的行/列数;请参见图5,是将图4所示按钮组(RECT—BUTTON)中所有矩形化按钮包围的区域划分为网格的示意图,图5所示每个小格为本发明实施例所称网格,每个网格中的黑色圓点是网格中心点。将图4所示矩形化按钮包围区域划分为网格具体过程如下从RECT—BUTTON中所有矩形化按钮的顶点坐标中,获取X轴和Y轴最小坐标(义她,所述(X曲,为图4所示矩形化按钮包围区域左上顶点A的坐标;从RECT_BUTTON中所有矩形化按钮的顶点坐标中,获取X轴和Y轴最大坐标(义^,;rwax),所述(义^,i^j为图4所示矩形化按钮包围区域右下顶点B的坐标;在RECT_BUTTON中,查找宽度最小的矩形化按钮,并将该矩形化按钮宽度的一半设为网格宽度w;在RECT一BUTTON中,查找高度最小的矩形化按钮,并将该矩形化按钮高度的一半设为网格高度h;用&似减去X她得到按钮包围区域宽度W,用宽度W除以网格宽度w得到网格列数;用1^减去1^."得到按钮包围区域高度H,用高度H除以网格高度h得到网格行数。进一步,若W/w或者H/h不是整数,则在W/w或者H/h的整数部分加1,得到网格的列数或行数。以上介绍了将矩形化按钮包围区域划分为网格时,计算网格的行数和列数的过程,以下介绍每个网格的网格中心点坐标的计算方法,以图5所示网格为例。假设0c,,^.)表示图5中第i行,第j列网格的中心点坐标,则可以采用如下公式计算该网格的网格中心点坐标A=zmin+(,'-o.5)*w,A=:rmin+C/-0.5)*/,(X她,y牆)为图5所示矩形化按钮包围区域左上顶点A的坐标,w为网格的宽度,h为网格的高度。计算出网格中心点坐标(x,,力)后,将该坐标填入网才各中心点表。请参见表2,为本发明实施例提供的网格中心点表,表2中第i行,第j列记录的是第i行,第j列网格的网格中心点坐标。以图5为例,表2中第一行,第一列记录的是图5所示第一行,第一列网格的网格中心点坐标,表2第二行,第一列记录的是图5所示第二行,第二列网格的网格中心点坐标。<table>tableseeoriginaldocumentpage16</column></row><table>表2步骤205:计算按钮组中每个矩形化按钮的第一行主导值和第二行主导值;在实际应用中,第一和第二行主导值计算公式分别为第一行主导值=;;min*MAX(WND_WIDTH,WND_HEIGHT)+xmin;第二行主导值=y隨*MAX(WND_WIDTH,WND—HEIGHT)+xmin;其中,若釆用图3所示窗口坐标系,则(;cmin,;;min)是指每个矩形化按钮左上顶点的坐标;MAX(WND_WIDTH,WND_HEIGHT)表示窗口的宽度和高度中的较大值。步骤206:将按钮组中的矩形化按钮分别按照步骤205计算出的第一行主导值和第二行主导值由小到大的顺序进行排序,得到第一行排序按钮组(ROW_SORT_BUTTONl)和第二行排序按钮组(ROW—SORT—BUTTON2);步骤207:将ROW—SORT—BUTTON1中每个矩形化按钮的左上顶点坐标y,)和右下顶点坐标;w坐标代入M值计算公式M=Unin,ax)*MAX(WND—WIDTH,WND—HEIGHT)+xmin,计算得到ROW—SORT—BUTTON1中每个矩形化按钮的M值;步骤208:对ROW_SORT—BUTTON1中每个矩形化按钮,釆用折半查找法,在ROW—SORT—BUTTON1中查找第一行主导值小于该矩形化按钮M值的矩形化按钮;其中,一个矩形化按钮的第一行主导值若小于另一个矩形化按钮的M值,则说明这两个矩形化按钮之间存在行相交线段。因此,步骤208是在获取ROW—SORT—BUTTON1中相互存在行相交线段的矩形化按钮。步骤209:根据ROW_SORT_BUTTONl中每两个存在行相交线段的矩形化按钮左上及右下顶点坐标之间的大小关系,得到这两个矩形化按钮的行相交线段,并将行相交线段记录在行相交线段表中,其中行相交线段表的第一行填写矩形化按钮的标识,第二行填写每个矩形化按钮的行相交线段;请参见图6,图6所示虚线段L^和L^分别为矩形化按钮1和矩形化按钮2的行相交线段。假设矩形化按钮1的坐标为(xlmin,ylmin,xlmax,;ax),矩形化按钮2的坐标为(x2mm,y2min,x2max,}2max),则L,2和L2i具体为n<2min<}linax<"^2max,则行相交线段Lu和I^为(少2mi,乂);n17Zlmax"若乂m,<y,■nZ2min<匸<"^lms,x,则行相交线段L^和I^为(少2min,^2max若少2min<少1min<少lmaxx,则行相交线段Lu和I^为(少miin赁3^1max^若y2min<少lmin<少2ma,'〈少lma,x,则行相交线段I^和Lu为(,A)。步骤210:对ROW一SORT^BUTTON2中的每一个矩形化按钮,采用折半查找方法,在ROW—SORT—BUTTON2中查找第二行主导值大于该矩形化按钮M值的矩形化按钮;其中,一个矩形化按钮的第二行主导值若大于另一个矩形化按钮的M值,则说明这两个矩形化按钮之间存在行相交线段,故步骤210是在获取ROW_SORT—BUTTON2中相互存在行相交线段的矩形化按钮。步骤211:根据ROW一SORT—BUTTON2中每两个存在行相交线段的矩形化按钮左上及右下顶点坐标之间的大小关系,得到这两个矩形化按钮的行相交线段,并将该线段记录在行相交线段表中;(获得行相交线段的具体过程请参见前文相关部分,此处不再赘述)假设有4个矩形化4要2組,它们的标识为1,2,3和4,且1至3三个矩形化按钮两两之间都存在行相交线段,而矩形化按钮4和其他三个矩形化按钮之间没有行相交线段,则这四个矩形化按钮的行相交线段表如表3所示才姿4丑标识1234行相交线段Ll2,"3L21,L23L31,L32表3由于矩形化按钮4没有行相交线段,则表3中矩形化按钮4对应位置填写的L44具体为(centery-h/2,centery+h/2),假设矩形化按钮4的左上及右下顶点坐标为(x4min,凡隱,x4max,少4_),贝'Jcentery=(少4^+凡隨)/2,h为网才各的高度。步骤212:计算按钮组中每个矩形化按钮的第一列主导值和第二列主导值;在实际应用中,第一和第二列主导值计算公式分别为第一列主导值=xmin*MAX(WND—WIDTH,WNDJHEIGHT)+ymin;第二列主导值=;cmax*MAX(WND—WIDTH,WND—HEIGHT)+ymin;其中,若釆用图3所示窗口坐标系,则(xmin,;;min)是指每个矩形化18按钮左上顶点的坐标。步骤213:将按钮组中的矩形化按钮分别按照步骤212计算出的第一列主导值和第二列主导值由小到大的顺序进行排序,得到第一列排序按钮组(LIST—SORT—BUTTON1)和第二列排序按钮组(LIST_SORT—BUTTON2);步骤214:将LIST—SORT—BUTTON1中每个矩形化按钮的左上顶点坐标(U,hin)和右下顶点横坐标^x代入N值计算公式N:"隱,丄MAX(WND_WIDTH,WND—HEIGHT)+jvmin,计算得到LIST—SORT一BUTTONl中每个矩形化按钮的N值;步骤215:对LIST—SORT_BUTTONl中每一个矩形化按钮,采用折半查找法,在LIST—SORT_BUTTONl中查找第一列主导值小于该矩形化按钮N值的矩形化按钮;其中,一个矩形化按钮的第一列主导值若小于另一个矩形化按钮的N值,则说明这两个按钮之间存在的列相交线段。因此,步骤214是在获取LIST_SORT—BUTTON1中相互存在列相交线段的矩形化按钮。步骤216:根据LIST—SORT—BUTTON1中每两个存在列相交线段的矩形化按钮左上及右下顶点坐标之间的大小关系,得到这两个矩形化按钮的列相交线段,并将列相交线段记录在列相交线段表中,其中列相交线段表的第一行填写矩形化按钮的标识,第二行填写每个矩形化按钮的行相交线段;请参见图7,图7所示虚线段134和143分别为矩形化按钮3和矩形化按钮4的列相交线段。假设矩形化按钮3的坐标为(x3min,Amin,x3max,^max),矩形化按钮4的坐标为(x4min,;;4min,x4max,少4_),则134和143具体为若L<U<A隨<A隨,则列相交线段134和U3为(x4min,x3max);若A咖<Amin<Amax<A雌,则列相交线段&和143为(^誦,x4max);若Amin<Amin<x3max<x4max,则列相交线段134和143为(x3min,x3max);若I<A關<Amax<A丽,则列相交线段134和143为(X3min,^隨)。步骤217:对LIST—SORT—BUTTON2中每一个矩形化按钮,采用折半查找法,在LIST—SORT—BUTT0N2中查找第二列主导值大于该矩形化按钮N值的矩形化按钮;其中,一个矩形化按钮的第二行主导值若大于另一个矩形化按钮的N值,则说明这两个矩形化按钮之间存在列相交线段,故步骤217是在获取LIST—SORT—BUTTON2中相互存在列相交线段的矩形化按钮。步骤218:根据LIST—SORT—BUTTON2中每两个存在列相交线段的矩形化按钮左上及由小顶点坐标之间的大小关系,得到这两个矩形化按钮的列相交线段,并将该线段记录在列相交线段表中;(获得列相交线段的具体过程请参见前文相关部分,此处不再赘述)假设有4个矩形化按钮,它们的标识为1,2,3和4,且l,2,4,三个矩形化按钮两两之间都存在行相交线段,而矩形化按钮3和其他三个矩形化按钮之间没有列相交线段,则这四个矩形化按钮的列相交线段表如表4所示<table>tableseeoriginaldocumentpage20</column></row><table>表4由于矩形化按钮3没有列相交线段,则表4中矩形化按钮3对应位置填写的I33具体为(centerx-w/2,centerx+w/2),假设矩形化按钮4的左上及右下顶点坐标为(a誦,y3min,x3max,y3max),贝'Jcenterx=(x3min+x3max)/2,w为网格的宽度。交线段表记录的该矩形化按钮的每个列相交线段两两组合,得到按钮行列相交区域,将按钮行列相交区域填入按钮行列相交区域表相应位置;以表2和表4为例,得到的按钮行列相交区域表如表5所示。<table>tableseeoriginaldocumentpage20</column></row><table>(L13,114)(1^3,丄24)表5步骤220:根据按钮行列相交区域,确定每个矩形化按钮包括的网格的行值和列值;假设某个矩形化按钮的行列相交区域为(X—,X—,mm,誦),矩形化按钮包围区域最小顶点坐标为(Xmin,Ymin),网格的高度和宽度分别为h和w,则根据不等式x,—<Xmin+w*(J-0.5)<隨和jvin<Ymin+h*(I-0.5)<>%m,n,解得行列相交区域包括的网格的行值I和列值J的取值范围。步骤221:按照步骤220计算出的行值和列值,在初始化按钮表中对应位置填入相应的矩形化按钮标识,得到窗口的按钮表;其中,初始化按钮表的行列数与网格中心点表的行列数相同,即初始化按钮表的行列数等于网格的行列数,并且由图4可知,窗口中某些位置并没有矩形化按钮,因此,本发明实施例在向初始化按钮表中填入矩形化按钮标识之前,该表中全部位置都填入-1,填入-1表示该区域没有按钮。比如,若步骤220计算出矩形化按钮2的某个行列相交区域包围的网格的行值I的取值范围为2<1<5,列值J的取值范围为5<J<10,则I可以取3,4,J可以取6,7,8,9,则在初始化按钮表第3行的第6列至第9列中填写按钮标识"2",同样,在第4行的第6至第9列中填写按钮标识"2"。以上为本发明实施例提供的按钮表获取方法,该方法能够根据按钮在窗口上的排版情况,自动生成按钮表,极大地提高了按钮表生成效率。进一步,由于按照上述方法生成的按钮表中存在数据冗余,可以进一步对已生成的按钮表进行优化,优化方式包括如下几种第一、若按钮表的某一行填写的数据均是-1,则删除该行数据;第二、若按钮表的某一列填写的数据均是-1,则删除该列数据;第三、若按钮表某几行填写的是相同的数据,则保留任意一行数据,删除其他行数据;值得注意的是,有一种特殊情况,如果一行数据的第a列填写了-1,而另一行数据的第a列填写了矩形化按钮标识,这两行其他列填写的数据都相同,则删除第a列填写-1的一行数据,保留另一行数据。第四、若按钮表某几列填写的是相同的数据,则保留任意一列数据,删除其他列数据;值得注意的是,有一种特殊情况,如果一列数据的第b行填写了-1,而另一列数据的第b行填写了矩形化按钮标识,这两列其他行填写的数据都相同,则删除第b行填写-1的一列数据,保留另一列数据。是一个初始化按钮表,该表中全部填入-1。-1_1-1_1_1-1-1-1-1-1-1-1-1_1_1-1-1_1_1-1-1_1_1—1—1—1-1-1表6表7是在表6的基础上得到的按钮表。11-12-13_111-12_1-1-1_1-1_1_1-1_1_1_1—1—14444表7由于表7中第3行和第3列填的都-1,可以删除,删除后得到表8。112-13_1112-1-1-1_1-14444表8表8中第l和2列填写的是同样的数据,第4和5列填写的是同样的数据,可以任意分别保留一列,得到表9。2212_1312_1-1_1444表9表9中第1行和第2行中除第4列填写的数据不同外,其他列填写的都是相同的数据,则按照所述的原则,保留第1行,删除第2行,得到表10。表10为优化后,最终得到的按钮表。12-13_1444表10解析该按钮表并实现遥控器操作功能。假设表11是采用本发明提供的方法得到的按钮表。1246_113791810_1121314151617表11假设当前焦点按钮的标识为"2",那么按一下遥控器左键,移动到标识为'T,的按钮,按一下遥控器右键,移动到标识为"4"的按钮,其他方向同理。在按钮表上移动时,如果遇到表格中的值是"-r,将继续移动直到表格中的值不为"-r时,停止移动,并将当前表格中的标识对应的按钮选为焦点按钮。如表11所示,假设当前焦点按钮的标识为"7",按一下遥控器的向下键会移动到"-r,这时继续向下移动,直到找到标识为"16"的按钮。在按钮表上移动时,如果发现移动后表格的值和移动前表格的值相同,23则继续移动直到表格中的值与移动前的表格的值不相同时,停止移动,并将当前表格中标识对应的按钮选为焦点按钮。如表11所示,假设当前焦点按钮的标识为"1",按一次遥控器的向下键后,会不断移动,直到移动到值为"13"的表格。值得注意的是,有两种种特殊情况,一种是焦点按钮所在行填写的都是该焦点按钮的标识,或者该焦点按钮的标识和-1,此时,如果用户使用遥控器左右键选择按钮,则最终选中的按钮还是之前的焦点按钮;一种是焦点按钮所在列填写的都是该焦点按钮的标识,或者该焦点按钮的标识和-1,此时,如果用户使用遥控器上下键选择按钮,则最终选中的按钮还是之前的焦点4姿4丑。以上详细介绍了本发明实施例提供的按钮表获取方法,相应的本发明实施例还提供了一种按钮表获取装置。请参见图8,为本发明实施例提供的一种按钮表获取装置,该装置包括按钮组获取单元801,用于获取窗口中需要用遥控器选择的按钮组;网格划分单元802,用于将按钮组中所有按钮包围的区域划分为网格;相交区域获取单元803,用于获取按钮组中每个按钮的行列相交区域;网格行列值确定单元804,用于确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;按钮表生成单元805,用于按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。以上为本发明实施例提供的按钮表获取装置,在实际应用中,存在某些按钮表是不规则图形的情况,对此为了简化按钮表获取流程,进一步提高按钮表的生成速度,本发明实施例提供的按钮表获取装置还可以进一步包括按钮矩形化单元;所述按钮矩形化单元,用于将按钮组中每个按钮矩形化,得到矩形化按钮;在实际应用中,矩形化单元可以包括如下几个子单元矩形化按钮坐标获取单元,用于获取按钮组中每个按钮最大的横坐标V和最大的纵坐标y,,及,最小的横坐标、n和最小的纵坐标U矩形化按钮坐标设置单元,用于将上述两对坐标设置为矩形化按钮的坐标。在实际应用中,网格划分单元802可以包括如下几个子单元行列数计算单元,用于计算按钮组中所有按钮包围的区域划分为网格时,网格的行数和列数;中心点坐标计算及记录单元,用于计算每个网格的网格中心点坐标,并将每个网格中心点坐标记录在网格中心表相应位置,所述网格中心表的行数和列数等于所述网格的行数和列数。对于前文所述行列数计算单元,在实际应用中可以包括如下几个子单元按钮包围区域获取单元,用于从按钮组所有按钮的坐标中,获取最小的横坐标x牆和最小的纵坐标r^,及,最大的横坐标JC^和最大的纵坐标网格宽高确定单元,用于从按钮组中,查找宽度最小的按钮,并将所述按钮宽度的一半作为网格宽度W,以及,查找高度最小的按钮,并将所述按钮高度的一半作为网格高度h;列数计算单元,用于用X^减去义^得到按钮包围区域宽度W,用宽度W除以网格宽度w得到网格的列数;行数计算单元,用于用4w减去r^得到按钮包围区域高度H,用高度H除以网格高度h得到网格的行数。对于前文所述相交区域获取单元803,在实际应用中可以包括如下几个子单元行相交线段获取单元,用于获取按钮组中每个按钮的行相交线段;列相交线段获取单元,用于获取按钮组中每个按钮的列相交线段;相交区域获取子单元,用于将每个按钮的行相交线段和列相交线段两两组合,得到每个按钮的行列相交区域;其中,所述行相交线段获取单元具体包括主导值计算单元,用于计算按钮组中每个按钮的第一行主导值和第二行主导值;行排序单元,用于将按钮组中的按钮分别按照第一行主导值和第二行主导值由小到大的顺序排序,得到第一行排序按z組组和第二行排序按钮组;M值计算单元,用于将按钮组中每个按钮最小的横坐标xmin和最小的纵坐标;u,以及,最大的纵坐标;w坐标代入M值计算公式M=Ovin^max)*MAX(WND—WIDTH,WND—HEIGHT)+xmin,得到每个按钮的M值,MAX(WND—WIDTH,WND_HEIGHT)表示窗口的宽度和高度中的较大值;第一行相交按钮获取单元,用于对第一行排序按钮组中每个按钮,釆用折半查找法,在第一行排序按钮组中查找第一行主导值小于该按钮M值的按钮,其中,一个按钮的第一行主导值小于另一按钮的M值,说明这两个按钮之间存在行相交线段;第一行相交线段获取单元,用于根据第一行排序按钮组中每对存在行相交线段的按钮的坐标关系,获得这两个按钮的行相交线段;第二行相交按钮获取单元,用于对第二行排序按钮组中每个按钮,采用折半查找装置,在第二行排序按钮组中查找第二行主导值大于该按钮M值的按钮,其中,一个按钮的第二行主导值大于另一个按钮的M值,说明这两个按钮之间存在行相交线段;第二行相交线段获取单元,用于根据第二行排序按钮组中每对存在行相交线段的按钮的坐标关系,获得这两个按钮的行相交线段。其中,所述列相交线段获取单元具体包括列主导值计算单元,用于计算按钮组中每个按钮的第一列主导值和第二列主导值;列排序单元,用于将按钮组中按钮分别按照第一列主导值和第二列主导值由小到大的顺序进行排序,得到第一列排序按钮组和第二列排序按钮组;26N值计算单元,用于将按钮组中每个按钮最小的横坐标&m,最小的纵坐标:^。及最大的横坐标xmax坐标代入N值计算公式N="min+Xmax)*MAX(WNDWIDTH,WNDHEIGHT)+ymin,计算得到每个按钮的N值;第一列相交按钮获取单元,用于对第一列排序按钮组中每个按钮,采用折半查找法,在第一列排序按钮组中查找第一列主导值小于该按钮N值的按钮,其中,一个按钮的第一列主导值小于另一按钮的N值,说明这两个按钮之间存在列相交线段;第一列相交线段获取单元,用于根据第一列排序按钮组中每对存在列相交线段的按钮的坐标关系,得到这两个按钮的列相交线段;第二列相交按钮获取单元,用于对第二行排序按钮组中每个按钮,采用折半查找装置,在第二列排序按钮组中查找第二列主导值大于该按钮N值的按钮;第二列相交线段获取单元,用于根据第二列排序按钮组中每对存在列相交线段的按钮的坐标关系,得到这两个按钮的列相交线段。以上对本发明所提供的一种按钮表获取方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。2权利要求1、一种按钮表获取方法,其特征在于,所述方法包括获取窗口中需要用遥控器选择的按钮组;将按钮组中所有按钮包围的区域划分为网格;获取按钮组中每个按钮的行列相交区域;确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。2、如权利要求l所述的方法,其特征在于,若所述按钮组中有一个按钮是不规则的图形,则将按钮组中所有按钮包围的区域划分为网格之前,所述方法进一步包括将按钮组中每个按钮矩形化,得到矩形化按钮。3、如权利要求2所述的方法,其特征在于,将按钮组中每个按钮矩形化,得到矩形化按钮具体包括获取按钮组中每个按钮最大的横坐标;c^和最大的纵坐标;^,及,最小的横坐标^和最小的纵坐标少^;将上述两对坐标设置为矩形化按钮的坐标。4、如权利要求1至3中任一权利要求所述的方法,其特征在于,将按钮组中所有按钮包围的区域划分为网格具体包括计算按钮组中所有按钮包围的区域划分为网格时,网格的行数和列数;计算每个网格的网格中心点坐标,并将每个网格中心点坐标记录在网格中心表相应位置,所述网格中心表的行数和列数等于所述网格的行数和列数。5、如权利要求4所述的方法,其特征在于,计算按钮组中所有按钮包围的区域划分为网格时,网格的行数和列数具体包括从按钮组所有按钮的坐标中,获取最小的横坐标^,和最小的纵坐标y,及,最大的横坐标X^和最大的纵坐标^j从按钮组中,查找宽度最小的按钮,并将所述按钮宽度的一半作为网格宽度w,以及,查找高度最小的按钮,并将所述按钮高度的一半作为网格高度h;用X^减去义她得到按钮包围区域宽度W,用宽度W除以网格宽度w得到网格的列数;用^减去r她得到按钮包围区域高度H,用高度H除以网格高度h得到网格的行数。6、如权利要求5所述的方法,其特征在于,若网格的行值为i,列值为j,则计算每个网格的网格中心点坐标具体为将每个网格的行值i和列值j分别带入公式乇=imin+G-0.5)*w,r=;rmm+(_/-o.5)*,得到网格中心点横坐标x,和网格中心点纵坐标k。7、如权利要求1至3中任一权利要求所述的方法,其特征在于,所述获取按钮组中每个按钮的行列相交区域具体包括获取按钮组中每个按钮的行相交线段和列相交线段;将每个按钮的行相交线段和列相交线段两两组合,得到每个按钮的行列相交区域。8、如权利要求7所述的方法,其特征在于,所述获取按钮组中每个按钮的行相交线段具体包括计算按钮组中每个按钮的第一行主导值和第二行主导值;将按钮组中的按钮分别按照第一行主导值和第二行主导值由小到大的顺序排序,得到第一行排序按钮组和第二行排序按钮组;将按钮组中每个按钮最小的横坐标x^和最小的纵坐标^m,以及,最大的纵坐标;;^坐标代入M值计算公式M=(HX)*MAX(豐DWIDTH,額DHEIGHT)+xmin,得到每个按钮的M值,MAX(WND—WIDTH,WND—HEIGHT)表示窗口的宽度和高度中的较大值;对第一行排序按钮组中每个按钮,采用折半查找法,在第一行排序按钮组中查找第一行主导值小于该按钮M值的按钮,其中,一个按钮的第一行主导值小于另一按钮的M值,说明这两个按钮之间存在行相交线段;根据第一行排序按钮组中每对存在行相交线段的按钮的坐标关系,获得这两个按钮的行相交线段;对第二行排序按钮组中每个按钮,采用折半查找方法,在第二行排序按钮组中查找第二行主导值大于该按钮M值的按钮,其中,一个按钮的第二行主导值大于另一个按钮的M值,说明这两个按钮之间存在行相交线段;根据第二行排序按钮组中每对存在行相交线段的按钮的坐标关系,获得这两个按钮的行相交线段。9、如权利要求8所述的方法,其特征在于,所述计算按钮组中每个按钮的第一行主导值和第二行主导值具体为将按钮组中每个按钮最小的纵坐标ymm和最大的横坐标xmm带入第一行主导值计算公式第一行主导值=_ymin*MAX(WND—WIDTH,WND—HEIGHT)+xmin,得到每个按钮的第一行主导值;将按钮组中每个按钮最大的纵坐标少_和最小的横坐标;cmm带入第二行主导值计算公式第二行主导值=少,*MAX(WND—WIDTH,WND—HEIGHT)十x隨,得到每个按钮的第二行主导值。10、如权利要求8所述的方法,其特征在于,若按钮cc的坐标为(xami,凡m,n,^隨,凡隨),按钮I3的坐标为(min,々min,證,"隨),且这两个按钮存在行相交线段,则所述按钮a和按钮|3的行相交线段具体为则按钮a和按钮(3的行相交线段起点为"min则按钮a和按钮(3的行相交线段起点为^min则按钮a和按钮(3的行相交线段起点为凡,则按钮a和按钮P的行相交线段起点为>^min11、如权利要求7所述的方法,其特征在于,所述获取按钮组中每个按少min<3^/min<少amax<3^〃max,终点为^;、,、、zv,amaxj少ormin<少〃min<}〃max<少ffmax,3^min<ormin<少amax<^"max,纟冬点为j;;、"、zv,amax7少y3min<少amin<^"max<少amax,钮的列相交线段具体包括计算按钮组中每个按钮的第一列主导值和第二列主导值;将按钮组中按钮分别按照第一列主导值和第二列主导值由小到大的顺序进行排序,得到第一列排序按钮组和第二列排序按钮组;将按钮组中每个按钮最小的横坐标x^,最小的纵坐标jv。及最大的横坐标x,坐标代入N值计算公式N="min;Xmax)*MAX(WND—WIDTH,WND—HEIGHT)+_ymin,计算得到每个按钮的N值;对第一列排序按钮组中每个按钮,采用折半查找法,在第一列排序按钮组中查找第一列主导值小于该按钮N值的按钮,其中,一个按钮的第一列主导值小于另一按钮的N值,说明这两个按钮之间存在列相交线段;根据第一列排序按钮组中每对存在列相交线段的按钮的坐标关系,得到这两个按钮的列相交线段;对第二行排序按钮组中每个按钮,采用折半查找方法,在第二列排序按钮组中查找第二列主导值大于该按钮N值的按钮;根据第二列排序按钮组中每对存在列相交线段的按钮的坐标关系,得到这两个按钮的列相交线段。12、如权利要求11所述的方法,其特征在于,所述计算按钮组中每个按钮的第一列主导值和第二列主导值具体为将按钮组中每个按钮最'J、的横坐标;crain和最小的纵坐标ymin带入第一列主导值计算公式第一列主导值=:cmin*MAX(WND_WIDTH,WND—HEIGHT)+_ymin,得到每个按钮的第一列主导值;将按钮组中每个按钮最大的横坐标xmax和最小的纵坐标ymm带入第二列主导值计算公式第二列主导值-x應*MAX(WND—WIDTH,WND_HEIGHT)+;;min,得到每个按钮在第二列主导值。13、如权利要求11所述的方法,其特征在于,若按钮oc的坐标为(xamin,凡隱,x扁x,凡,),按钮P的坐标为(腿,"min,x^隨,"max),且这两个按钮存在列相交线段,则按钮a和按钮|3的列相交线段具体为若<隱<^隨<隨,则按钮a和按钮P的列相交线段起点为min终,,、、Xamax,若&min<咖<隨<x_x,则按钮oc和按钮P的列相交线段起点为■终若xa.<x.<x<xfl,则按钮a和按钮(3的列相交线段起点为x.终/w"pmm、min、max、""max7v"*"*八1,八r「vvi",、^i^w、*、、,^mm、点为5若國<Un<,<x"隨,则按钮《和按钮P的列相交线段起点为xamin终点为隨。14、如权利要求6所述的方法,其特征在于,若按钮组中所有按钮包围区域最小的坐标为(Xmin,Ymin),按钮的行列相交区域为(x—,x—,;vm,;vm),则确定所述按钮的行列相交区域包围网格的行值和列值具体为将按钮的行列相交区域(、咖,x—,;v^—)带入不等式x—〈Xn^+w承(J—0.5)"—和h—〈Y^+"(1-0.5)<;vm,得到所述按钮的行列相交区域包围网格的行值I和列值J的取值范围。15、如权利要求1至3中任一权利要求所述的方法,其特征在于,所述方法进一步包括若按钮表的某一行填写的数据均不是按钮标识,则删除该行数据;若按钮表的某一列填写的数据均不是按钮标识,则删除该列数据;若按钮表某几行填写的是相同的数据,则保留任意一行数据,删除其他行数据;若按钮表某几列填写的是相同的数据,则保留任意一列数据,删除其他列数据。16、一种按钮表获取装置,其特征在于,所述装置包括按钮组获取单元,用于获取窗口中需要用遥控器选择的按钮组;网格划分单元,用于将按钮组中所有按钮包围的区域划分为网格;相交区域获取单元,用于获取按钮组中每个按钮的行列相交区域;网格行列值确定单元,用于确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;按钮表生成单元,用于按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。17、如权利要求16所述的装置,其特征在于,若所述按钮组中有一个按钮是不规则的图形,则所述装置进一步包括按钮矩形化单元;所述按钮矩形化单元,用于将按钮组中每个按钮矩形化,得到矩形化按钮。18、如权利要求17所述的装置,其特征在于,所述按钮矩形化单元具体包括矩形化按钮坐标获取单元,用于获取按钮组中每个按钮最大的横坐标x^和最大的纵坐标;;_,及,最小的横坐标^和最小的纵坐标u矩形化按钮坐标设置单元,用于将上述两对坐标设置为矩形化按钮的坐标。19、如权利要求16至18中任一权利要求所述的装置,其特征在于,所述网格划分单元具体包括行列数计算单元,用于计算按钮组中所有按钮包围的区域划分为网格时,网格的4亍凄t和列^t;中心点坐标计算及记录单元,用于计算每个网格的网格中心点坐标,并将每个网格中心点坐标记录在网格中心表相应位置,所述网格中心表的行数和列数等于所述网格的行数和列数。20、如权利要求19所述的装置,其特征在于,所述行列数计算单元具体包括按钮包围区域获取单元,用于从按钮组所有按钮的坐标中,获取最小的横坐标^,力和最小的纵坐标及,最大的横坐标X皿和最大的纵坐标y皿;网格宽高确定单元,用于从按钮组中,查找宽度最小的按钮,并将所述按钮宽度的一半作为网格宽度W,以及,查找高度最小的按钮,并将所迷按钮高度的一半作为网格高度h;列数计算单元,用于用J^^减去U寻到按钮包围区域宽度W,用宽度W除以网格宽度w得到网格的列数;行数计算单元,用于用^似减去l^w得到按钮包围区域高度H,用高度H除以网格高度h得到网格的行数。21、如权利要求16至18中任一权利要求所述的装置,其特征在于,所述相交区域获取单元具体包括行相交线段获取单元,用于获取按钮组中每个按钮的行相交线段;列相交线段获取单元,用于获取按钮组中每个按钮的列相交线段;相交区域获取子单元,用于将每个按钮的行相交线段和列相交线段两两组合,得到每个按钮的行列相交区域。22、如权利要求21所述的装置,其特征在于,所述行相交线段获取单元具体包括主导值计算单元,用于计算按钮组中每个按钮的第一行主导值和第二行主导值;行排序单元,用于将按钮组中的按钮分别按照第一行主导值和第二行主导值由、到大的顺序排序,得到第一行排序按钮组和第二行排序按钮组;M值计算单元,用于将按钮组中每个按钮最'J、的横坐标xmin和最小的纵坐标凡m,以及,最大的纵坐标;w坐标代入M值计算公式M=Cymin,ax)*MAX(WND_WIDTH,WND—HEIGHT)+xmin,得到每个按钮的M值,MAX(WND_WIDTH,WND—HEIGHT)表示窗口的宽度和高度中的较大值;第一行相交按钮获取单元,用于对第一行排序按钮组中每个按钮,釆用折半查找法,在第一行排序按钮组中查找第一行主导值小于该按钮M值的按钮,其中,一个按钮的第一行主导值小于另一按钮的M值,说明这两个按钮之间存在行相交线段;第一行相交线段获取单元,用于根据第一行排序按钮组中每对存在行相交线段的按钮的坐标关系,获得这两个按钮的行相交线段;第二行相交按钮获取单元,用于对第二行排序按钮组中每个按钮,釆用折半查找装置,在第二行排序按钮组中查找第二行主导值大于该按钮M值的按钮,其中,一个按钮的第二行主导值大于另一个按钮的M值,说明这两个按钮之间存在行相交线段;第二行相交线段获取单元,用于根据第二行排序按钮组中每对存在行相交线段的按钮的坐标关系,获得这两个按钮的行相交线段。23、如权利要求21所述的装置,其特征在于,所述列相交线段获取单元具体包括列主导值计算单元,用于计算按钮组中每个按钮的第一列主导值和第二列主导值;列排序单元,用于将按钮组中按钮分别按照第一列主导值和第二列主导值由小到大的顺序进行排序,得到第一列排序按钮组和第二列排序按钮组;N值计算单元,用于将按钮组中每个按钮最小的横坐标x^,最小的纵坐标>^及最大的横坐标;c^坐标代入N值计算公式N=^m,n,ax)*MAX(WND—WIDTH,WND_HEIGHT)+;;min,计算得到每个4妄4丑的N^直;第一列相交按钮获取单元,用于对第一列排序按钮组中每个按钮,釆用折半查找法,在第一列排序按钮组中查找第一列主导值小于该按钮N值的按钮,其中,一个按钮的第一列主导值小于另一按钮的N值,说明这两个按钮之间存在列相交线段;第一列相交线段获取单元,用于根据第一列排序按钮组中每对存在列相交线段的按钮的坐标关系,得到这两个按钮的列相交线段;第二列相交按钮获取单元,用于对第二行排序按钮组中每个按钮,采用折半查找装置,在第二列排序按钮组中查找第二列主导值大于该按钮N值的按钮;第二列相交线段获取单元,用于根据第二列排序按钮组中每对存在列相交线段的按钮的坐标关系,得到这两个按钮的列相交线段。全文摘要本发明实施例提供了一种按钮表获取方法及装置。本发明实施例提供的按钮表获取方法包括获取窗口中需要用遥控器选择的按钮组;将按钮组中所有按钮包围的区域划分为网格;获取按钮组中每个按钮的行列相交区域;确定按钮组中每个按钮的行列相交区域包围的网格的行值和列值;按照所述行值和列值,在初始化按钮表中相应位置填入按钮的标识,得到所述窗口的按钮表。相应地,本发明实施例还提供了一种按钮表获取装置。采用本发明实施例提供的方法或装置能够实现自动获取按钮表,极大地提高了按钮表的生成速度。文档编号G06F3/048GK101477437SQ200810240890公开日2009年7月8日申请日期2008年12月26日优先权日2008年12月26日发明者朱竹林申请人:厦门高德软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1