具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
在本发明的描述中,术语“内侧”、“外侧”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不能理解为对本发明的限制。
下面将参照附图来详细说明根据本发明的多点手势识别方法和装置。
下面将首先说明根据本发明的多点手势识别方法,其中图1显示了本发明的一个实施例的多点手势识别方法的流程图。该方法包括:
步骤A:沿着至少一个方向检测物体所引起的感应波形,在本发明的一个实施例中,该感应波形可由物体的触碰引起,或者也可由声波引起,再或者也可由图像投影所引起;
步骤B:根据检测的所述感应波形确定触碰所述触控装置的物体数目。具体地,首先将所述感应波形的每个感应值与参考波形值比较,以判定感应波形是否包括上升趋势波形和/或者下降趋势波形。接着根据感应波形中上升趋势波形和/或下降趋势波形的数目确定物体的数目。由此根据沿着至少一个方向获得产生的感应波形,并根据感应波形中的上升和/或者下降趋势波形的数目识别,从而可以准确地识别物体的数目。需要说明的是,此处该感应波形可以通过触碰产生、也可以通过其他例如光学传感、电学传感等来获得所述感应波形,这也落入本发明的保护范围之内。上述步骤(1)可以包括沿着第一方向检测所引起的第一感应波形;以及沿着第二方向检测所引起的第二感应波形。
步骤C:判断检测的物体数目是否大于预设数目。在本发明的一个实施例中,预设数目为1,即需要物体的数目大于1,例如为2。当然在本发明的其他实施例中,还可根据触控装置的需要对预设数目进行扩展。
步骤D:如果判断检测的物体数目大于预设数目,则记录触碰所述触控装置的多个物体的触碰状态及移动轨迹。在本发明的实施例中,多个物体的触碰状态是指多个物体中有几个一直保持持续触碰状态。在该实施例中,需要多个物体中至少有两个物体一直保持触碰状态。例如在触碰开始时,有三个物体(例如手指)在触碰所述触控装置,在触碰期间如果检测到有物体不再触碰,则判断是否还大于预设数目1,如果还大于预设数目则继续以下步骤,然而如果小于或等于预设数目则停止。
步骤E:根据多个物体的触碰状态及移动轨迹判断多个物体是否在同一方向上移动。
步骤F:如果判断所述多个物体在同一方向上移动则确定所述多点手势为平移手势。在本发明的实施例中,如果判断所述多个物体在同一方向上移动则跟踪手势轨迹,根据手势操作过程中所得到的坐标信息,时间,位移大小和方向作为控制参考量来控制对象操作,所述的对象操作包括卷轴的方向、速度或翻页方向、速度。
需要说明的是,在下述说明中将以触控装置作为示例性实施例来说明本发明的识别方法和装置,但是普通技术人员在阅读了本发明的下述详细说明之后,显然也可以将本发明的识别方法和装置应用/结合到其他的方法和设备中,该方法和装置的保护范围由所附权利要求及其等同手段来进行限定。
与此相对应地,上述步骤A可以包括:沿着所述触控装置的触控面上的第一方向检测物体触碰所引起的第一感应波形;以及沿着所述触控装置的触控面上的第二方向检测物体触碰所引起的第二感应波形。
下面将结合触控装置来详细说明本发明的识别方法,其中图2是本发明的一个实施例的触控装置上的感应线的示意图,其中触控装置由X方向感应线11和Y方向感应线12组合而成,并利用此X方向感应性线11和Y方向感应线来获得感应波形,F1和F2为触碰物体。
需要说明的是,感应线只是用来传感触碰波形的一种方法和/或者装置,其他例如利用声波、光波等的传感器也可以被采用,其也落入本发明的保护范围之内。
还需要说明的是,X方向感应线11和Y方向感应线12之间可以形成预定的夹角。且优选地,该夹角为直角。
此外,在下述说明中,术语“上升趋势波形”指的是该段的感应波形从感应波形的下方穿越至参考波形的上方的波形;术语“下降趋势波形”指的是该段的感应波形从感应波形的上方穿越至参考波形的下方的波形,此处并未将该波形局限到任何具体的波形形状,其可以是普通技术人员理解的任何波形形状,只要其满足前述的“上升趋势波形”和“下降趋势波形”的定义。此外,术语“参考波形”可以是任何预设的波形,在本发明中,该参考波形为直线,但是普通技术人员显然可以根据实际应用的需要选择所需的参考判断基准,这也落入本发明的保护范围之内。
在检测物体触碰时,先检测X方向各条感应线得到X方向的感应波形,并将X方向的感应波形与参考波形(图4-6中的虚线)进行比较判断得到X方向上升和/或下降趋势波形的次数,通过计算X方向上升和/或者下降趋势波形的次数进而得到X方向触碰物体的数目。然后检测Y方向各条感应线得到Y方向的感应波形,并将Y方向的感应波形与参考波形值进行比较判断得到Y方向上升和/或下降趋势波形的次数,进而得到Y方向触碰物体的数目。
可选地,接着将X方向触碰物体的数目与Y方向触碰物体的数目进行比较,得到的大者为实际触控装置上触碰物体的数目。
需要说明的是,为了增强感应波形的检测精度,可以沿着触控装置的触控面的更多的方向(例如3个、4个或者5个等)采集沿着这些方向触碰所产生的感应波形,这也落入本发明的保护范围之内。
下面将详细描述本发明的识别方法的各步骤。图3是本发明的一个实施例的多点手势识别方法中步骤B的流程图;图4是本发明的第一实施例的感应波形与参考波形的示意图。
如上所述,在步骤A中可以检测并获得由物体引起的感应波形。在步骤B中,包括:
步骤500:将感应波形的当前感应值与参考波形值进行比较,判断感应波形的当前感应值是否大于参考波形感应值;若判断为是,执行步骤501,如果判断为否则执行步骤503;
步骤501:进一步判断感应波形的前一感应值是否小于参考波形感应值,判断为是,则执行步骤502且得到该处感应波形是上升趋势波形,并记录该上升趋势波形;如果判断为否,则执行步骤505;
步骤503:进一步判断感应波形的前一感应值是否大于参考波形感应值,如果判断为是,则执行步骤504并得到该处感应波形是下降趋势波形,并记录该下降趋势波形,判断为否执行步骤505;
步骤505为:判断当前感应值是否是最后一个,若判断是最后一个,则执行步骤506:根据上升和/或下降趋势波形的次数来决定该方向的物体触碰数量,若判断为否,重新执行步骤500。其中,该实施例只是给出了两个物体触碰时的波形,显然该方法也可以用于大于两触碰物体时的情况。
根据本发明的一个实施例,在图1中的步骤B之前还可以包括:设置第一初始感应值,其中,第一初始感应值根据所述感应波形的感应方向设置。其中,在本发明的实施例中所述感应波形的感应方向为由物体引起的变化量方向。例如如图4中感应波形的感应方向为向上,而在图5中感应波形的感应方向为向下。在本发明的实施例中,如果感应波形的感应方向向上,则第一初始感应值应小于参考波形值,反之,如果感应波形的感应方向向下,则第一初始感应值应大于参考波形值。以及在将感应波形的初始感应值与参考波形值进行比较之后,根据第一初始感应值与所述参考波形值的比较结果确定感应波形是否包括上升趋势波形或下降趋势波形。
根据本发明的一个实施例,在图1中的步骤B之前还可以包括:设置第二初始感应值,其中,第二初始感应值根据所述感应波形的感应方向设置。在本发明的实施例中,如果感应波形的感应方向向上,则第二初始感应值应小于参考波形值,反之,如果感应波形的感应方向向下,则第二初始感应值应大于参考波形值。以及在将感应波形的最终感应值与参考波形值进行比较之后,根据第二初始感应值与参考波形值的比较结果确定感应波形是否包括上升趋势波形或下降趋势波形。其中,在本发明的实施例中上述的感应峰值是指由物体所引起的最大感应变化量。
通过在感应波形的初始感应值之前和最终感应值之后分别增加第一初始感应值和第二初始感应值,触控装置上第一条感应线感应值将与预设的第一初始感应值进行比较,最后一条感应线感应值将与预设的第二初始感应值进行比较,这样可以防止依次进行相邻两个感应线感应值进行判断时出现第一条或者最后一条感应线感应值没有相应对象进行比较判断的情况,且这样可以得到上升趋势波形的数目和下降趋势波形的数目相等,从而可以将上升趋势波形的数目作为触碰物体的数目,或者将下降趋势波形的数目作为触碰物体的数目。
如果得到上升趋势波形的数目和下降趋势波形的数目不相等,则重新执行步骤A以重新进行数目的识别。
根据本发明的一个实施例,可以通过判定感应波形与参考波形的交点之间的距离来进一步判断触碰物体的数目。
当物体触碰的感应波形的局部在参考波形之上时,需判断感应波形与参考波形上升交点和紧跟其后的下降交点之间的距离是否大于一个阈值,这样可以进一步判断该触碰物体的实际存在,若物体触碰的感应波形的局部在参考波形之下,则判断感应波形与参考波形下降交点和紧跟其后的上升交点之间的距离是否大于阈值,若大于则认定触碰物体实际存在。根据本发明的一个实施例,该阈值可以为触控装置上受单个手指触碰影响的最小宽度;这样可以减少误触碰的发生。
如前所述,在该方法中还包括检测其他方向感应线的感应值,从而得到其他方向触碰物体的数目,进一步得到物体触碰触控装置的数目是各方向触碰物体的数目中的最大值。
图4为当有物体触碰时X或Y任一方向产生的波形图。200为扫描感应线得出的感应波形图,201为预设的参考波形。A、B、C、D四个点为感应波形200与参考波形201的交点;其中A、C为上升点,B、D为下降点。这四个点的识别可判断触碰物体的数目。判断A、B之间的距离或C、D两点之间的距离是否大于一个阈值,若大于,认定触碰物体实际存在。
其中,参考波形201是由物体触碰触控装置上的X感应线或Y感应线,其所触碰位置的感应量,进行量测、平均并依评估所求得的一种参考设定值或参考范围;上述触控装置可以是电容式触控装置。其中X、Y感应线的方向不一定为垂直,可为任意角度,需要根据实际装置中感应线形状来决定。
图5是本发明的第二实施例的感应波形与参考波形的示意图。如图5中所示,当触控装置上有物体触碰时,由于检测方法以及检测值的处理方法不同而得到如图5所示波形;其中20为预设的参考波形,21为扫描感应线得出的感应波形图。A’、B’、C’、D’四个点为参考线20与感应波形21的交点;其中A’、C’为下降点,B’、D’为上升点;这四个点的识别可判断触碰物体的数目;其具体的运算方法与上述相似,此处不再赘述。其中,该实施例只是给出了两个物体触碰时的波形,该方法也可以用于大于两触碰物体时的情况。
图6本发明第三实施例的感应波形与参考波形的示意图,其中感应波形为表面声波触控装置的接收器所接收到的波形。该装置配有发射声波的发射换能器和接收声波的接收换能器。工作时发射换能器将触控面板控制器送来的电信号转换成声波能,通过触控面板四边刻的反射表面超声波的反射条纹反射后,由接收换能器接收后转换成电信号。当有物体触碰屏幕时,部分声波能量被吸收,于是改变了接收信号,经过该触控装置中的控制器进一步处理,从而得到所需的触碰感应波形。
在图6中,31为某一时间段接收换能器接收到的声波能量叠加成的波形信号,该波形是在有物体触碰时的波形,波形中存在两个衰减缺口32和33;该衰减缺口32是由于物体靠近或触碰时,被触碰位置的部分声波能量被吸收,声波出现衰减造成的;30为预设参考波形;由上述方法可以判断出M、E为下降趋势中感应波形31与参考波形的交点,N、F为上升趋势中感应波形31与参考波形的交点,可以得到上升趋势波形的数目和下降趋势波形的数目均为两次;并得到有两个物体触碰该表面声波触控装置。本实施例只是给出了两个物体触碰时的情况,但是不局限于两个物体。
如图7所示,是本发明一个实施例的多点手势识别方法中步骤E的流程图。如图8所示,是本发明一个实施例中两物体触碰的移动示意图。在图8中,以触控装置上手指触碰移动为例,识别出至少两个手指F1、F2的存在。读取当前时刻手指的位置信息F1(x1,y1),F2(x2,y2),与前一时刻手指的位置信息F1′(x1′,y1′),F2′(x2′,y2′)进行比较。通过处理相关的位置信息,判断所述手指是否在同一方向上移动,识别出多点移动手势。具体包括以下步骤:
步骤S701:读取当前时刻F1、F2的坐标(X1,Y1)和(X2,Y2),并记为当前坐标;
步骤S702:确定所述至少两个物体在两个时刻位置之间的位移夹角,将读取的当前坐标和上一时刻读取的坐标F1′(x1′,y1′),F2′(x2′,y2′)进行比较;
取手指F1为例,
当|X1-X1’|<=L,且Y1-Y1’>=L时,认为手指F1位移角度为90°,即手指F1竖直向上移动;当|X1-X1’|<=L,且Y1-Y1’>=-L时,则认为手指F1位移角度为-90°,即手指F1竖直向下移动。同理可以判断F2的移动方向及角度。
当|x1-x1’|>=L,且|x2-x2’|>=L时,计算当前时刻位置与前一时刻位置手指F1移动位移夹角θ1和手指F2移动位移夹角θ2:
θ1=arctan((y1-y1’)/(x1-x1’));
θ2=arctan((y2-y2’)/(x2-x2’));
步骤S703:判断是否满足|θ2-θ1|<M。不满足则返回到S701,满足则执行S704,其中M为预设值,在本发明的实施例中,根据触控装置的不同可对M进行调整,即角度变化在预定范围内则判断为其在同一方向移动;
步骤S704:确定所述两个时刻位置之间所述至少两个物体的移动方向,并判断是否满足(x1-x1’>0且x2-x2’>0),或者满足(x1-x1’<0且x2-x2’<0),如果满足则认为手指是在同一方向移动,否则返回S701。
如果手指是在同一方向移动,则读取手指的位置信息进行轨迹跟踪。输出包括物体数目、位移大小、方向、绝对坐标和\或相对坐标的运动信息。可根据运动信息发出相应的控制信号。控制信号包括执行翻页、控制卷轴或其他功能。
其中所述位置信息是指代表所有手指(此处为数目2)位置的一个位置坐标信息,可取其质心坐标,或可取其中某一个或多个手指的坐标信息。其中多物体移动包括沿水平方向的移动或沿竖直方向的移动,也包括沿任意角度斜方向上的移动。当物体斜方向移动时,可以分解到水平方向和竖直方向,取分量较大的方向为实际移动方向,或者也可两个方向分量都取为实际移动方向。
该实施例中以两个手指为例,也可以是触控笔或其他任何物体,也可以是大于2的任何个数。该实施例中只是给出了一种判断物体是否在同一方向上移动的方法,也可以直接用斜率判断,或者直接用坐标进行判断。本发明实施例不局限于该方法。
但是在本发明的上述的一个实施例中,需要保持多个物体中至少有两个物体对触控装置进行持续触碰,如果判断少于两个物体则停止。当然在本发明的其他实施例中,也可设定如果触碰物体数目改变,则功能停止。
如图9所示,是本发明一个实施例触发某个特定功能的方法流程图。在该实施例中,当所述多个物体中的至少两个物体持续触碰,且所述至少两个物体的触碰时间和移动位移满足预设条件时,触发预定功能,并根据所述至少两个物体的移动轨迹确定所述预定功能的控制参考量。具体包括以下步骤:
步骤S901:检测触控装置上的物体数目是否至少为两个,是则执行S902,否则返回继续;
步骤S902:跟踪记录所述至少两个物体的状态,并获取物体运动信息。
在本发明的一个实施例中,可获得包括时间T、位移S、物体数目N等的运动信息,其中,T为第一次检测到多物体在触控装置上开始计时,S为在T时间内物体移动的位移。当然在本发明的其他实施例中,所述运动信息不局限于这所述的三个量。
步骤S903:当满足Tmin≤T≤Tmax,S≤Smax,且N≥2时,执行S904,否则返回到步骤S901。其中,在本发明的一个实施例中,Tmin为设定的第一时间阈值,Tmax为设定的第二时间阈值,Smax为设定的第一位移阈值。
步骤S904:触发某个特定的功能,其中所述特定的功能可以是滑条或者翻页,也可以是其他任意功能,当然本发明实施例不局限于此。
步骤S905:处理物体的运动信息,得到物体运动的位移大小,方向,角度,时间等信息,识别出手势动作,步骤S905可以以图8的分析做参考,在此不再详述。
步骤S906:根据所述至少两个物体的移动轨迹确定所述预定功能的控制参考量。以物体的运动信息作为控制参考量控制所触发的功能的执行,如可以根据位移的方向和角度控制滑条或翻页的方向,可以根据位移的大小控制滑条或者翻页的速度,当然也可以设定一个固定的速度,不局限于这些方法。
该实施例中是以时间位移以及物体数目作为某一特定功能的触发条件,所述触发条件可以任意多种组合,不局限于此。
如图10所示,为两个物体沿水平方向移动或沿竖直方向移动的示意图。所述物体沿同一个方向包括沿水平方向移动,竖直方向移动或任意角度的斜方向移动。如图所示,物体的移动方向包括向上、向下、向左、向右。
如图11a-11c所示,多个物体在触控装置上移动的示意图。该实施例中,当某一功能被触发后,手指移动过程中若手指个数有所改变,不影响功能的保持。如检测到3个手指启动卷轴功能后,在移动过程中,由三个手指变为两个,仍然保持卷轴功能。当然也可以设定手指数目改变,功能停止。如图11a所示,三个手指移动的示意图。如图11b所示,为三个手指在移动过程中变为两个手指的示意图。如图11c所示,为两个手指在移动过程中变为三个手指的示意图。
下面将结合图12来描述本发明的用于触控装置的多点平移手势的识别装置,其中图12是其结构方框示意图。该用于触控装置的多点平移手势的识别装置包括检测模块1000、触碰物体数目确定模块2000、记录模块3000和运算模块4000。其中,检测模块1000沿着至少一个方向检测该触控装置上由物体触碰所引起的感应波形。触碰物体数目确定模块2000根据检测模块1000检测的感应波形确定触碰该触控装置的物体数目。记录模块3000在触碰物体数目确定模块2000检测的物体数目大于预设数目时,记录触碰该触控装置的多个物体的触碰状态及移动轨迹。运算模块4000根据多个物体的触碰状态及移动轨迹判断多个物体是否在同一方向上移动,如果判断多个物体在同一方向上移动则确定所述多点手势为平移手势。
在本发明的一个是实施例中,触碰物体数目确定模块2000进一步包括运算子模块2100和输出子模块2200。其中,运算子模块2100将感应波形中的每个感应值与参考波形值进行比较,以判断感应波形是否包括上升趋势波形和/或下降趋势波形,并根据包括上升趋势波形和/或下降趋势波形的所述感应波形的数目确定触碰所述触控装置的物体的数目。输出子模块2200输出触碰所述触控装置的物体的数目。
在本发明的一个是实施例中,运算子模块2100还用于将感应波形的当前感应值与参考波形值进行比较,如果所述感应波形的当前感应值大于所述参考波形值,且所述感应波形的前一个感应值小于所述参考波形值,则判断所述感应波形包括上升趋势波形,如果所述感应波形的当前感应值小于所述参考波形值,且所述感应波形的前一个感应值大于所述参考波形值,则判断所述感应波形包括下降趋势波形。
在本发明的一个是实施例中,该用于触控装置的多点平移手势的识别装置还包括功能触发模块5000和参考量设置模块6000。功能触发模块5000在所述多个物体中的至少两个物体持续触碰,且所述至少两个物体的触碰时间和移动位移满足预设条件时,触发预定功能,例如滑条或者翻页等,或其他任意功能。参考量设置模块6000根据所述至少两个物体的移动轨迹确定所述预定功能的控制参考量。例如,可以根据位移的大小控制滑条或者翻页的速度,当然也可以设定一个固定的速度,不局限于这些方法。
在本发明的一个是实施例中,运算模块4000进一步包括位移夹角确定子模块4100、移动方向确定子模块4200和判断子模块4300。位移夹角确定子模块4100在多个物体中的至少两个物体持续触碰的情况下,根据所述至少两个物体移动轨迹确定所述至少两个物体在两个时刻位置之间的位移夹角。移动方向确定子模块4200确定两个时刻位置之间所述至少两个物体的移动方向。判断子模块4300根据该位移夹角和该移动方向判断所述多个物体是否在同一方向上移动。
在本发明的一个是实施例中,检测模块1000可包括感应线,所述感应线产生所述感应波形。具体地,检测模块1000包括所述感应线为多条。
在本发明的一个是实施例中,检测模块1000包括发射换能器和接收换能器。其中,发射换能器用于发射声波,接收换能器用于接收所述发射换能器发射的声波,所述触控装置在被触碰后吸收部分的所述声波,所述接收换能器根据吸收的声波产生所述感应波形。
如上所述,应用本发明检测触控装置上触碰物体数量的方法简单、直观。按照本发明上述实施例的方法来编写的程序实现单点及多点触控,算法简单,程序简洁,使用加减法来进行运算,减少了乘除法的使用,指令少,可扩展性好。而且较符合使用者的使用习惯,控制实现的功能也灵活多变。因此在相应嵌入式系统中对处理器运行速度和程序存储空间大小要求低,在满足嵌入式系统功能、性能的前提下能够大幅度降低系统成本。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、单元或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。