发明内容
本发明所要解决的技术问题是:提供一种触摸屏物体离屏检测方法,可得到触摸屏物体距离触摸屏的距离,避免对一些触摸操作误识别。
为解决上述技术问题,本发明采用如下技术方案:
一种触摸屏物体离屏检测方法,所述检测方法包括:
步骤S1、获取各个接收灯接收各个光路的信号,通过接收的信号检测出光路未被遮挡的截面面积;根据各光路未被遮挡的截面面积获得各光路被遮挡的截面面积;
步骤S2、获取各光路的形状和触摸物体的形状,通过光路的形状和触摸物体的形状建立一个截面被遮挡的模型;该模型将被遮挡的截面面积、各光路的形状、触摸物体的形状、触摸物体距离屏幕的高度值相关联;
步骤S3、通过被遮挡的截面面积和建立的模型,获取该模型中的高度值,此高度值便是触摸物体距离屏幕的高度。
作为本发明的一种实施方式,步骤S2中,该模型将被遮挡的截面面积、各光路的形状、触摸物体的形状、触摸物体距离屏幕的高度值相关联,建立一套有关图形面积及各边长度、高度相关的几何图形,而后根据已知的被遮挡的截面面积、截面面积对应图形边长获得触摸物体距离屏幕的高度值。
作为本发明的一种实施方式,步骤S1中,根据各个光路未被遮挡的信号遮挡率,以及光路的遮挡区域获得各光路被遮挡的截面面积;光路的遮挡区域包括光路的两侧被遮挡、一侧被遮挡、或是两侧均未被遮挡。
作为本发明的一种实施方式,所述触摸物体为触摸笔,步骤S2中包括获取触摸笔的直径。
作为本发明的一种实施方式,步骤S2中,各光路为截面长宽为w的正方形柱体,触摸物体为圆柱体。
作为本发明的一种实施方式,步骤S2包括如下步骤中的至少一个:
步骤S21、判断是否存在光路两侧均被遮挡的光路,若存在,获取遮挡物体距离该光路对应区域屏幕表面的高度h1=(w*w)*(100-n1)/100/w;其中,两侧均被遮挡的光路的遮挡率为n1%;
步骤S22、判断是否存在光路相邻侧被遮挡的两条相邻光路,若存在,获取遮挡物体距离该光路对应区域屏幕表面高度h2=w-[(w*w)*n2+(w*w)*n3]/L/100,其中,相邻侧被遮挡的两条相邻光路的遮挡率分别为n2%、n3%,通过触摸屏各个方向的光路相交叠加获取遮挡物体的直径L;
步骤S23、判断是否存在周边均为被遮挡、中部区域被遮挡的光路,若存在,获取遮挡物体距离该光路对应区域屏幕表面高度h3=w-(w*w)*n4/L/100,其中,两侧均未被遮挡的光路的遮挡率为n4%,通过触摸屏各个方向的光路相交叠加获取遮挡物体的直径L。
作为本发明的一种实施方式,步骤S22中,光路的位置根据发射灯和接收灯的物理位置已经确定,两条光路是否相邻根据各自光路中发射灯发射的信号和接收灯接收的信号获得。
作为本发明的一种实施方式,步骤S22、步骤S23中,计算触摸物体的直径L的方法包括:
每条光路就是一个该光路形状的多边形,将所有被遮挡的光路看作是一个多边形,求所有多边形相与后的结果便是检测到的物体形状;计算触摸物体的形状采用如下方式的至少一种:
【1】将所有光路以像素的形式相互叠加,最后求出阴影最深的区域就是该物体的形状;
【2】触摸屏四边分别设有红外发射元件及红外接收元件;设定从一个红外发射元件至一个红外接收元件的光路为单元光路;以红外发射元件作为光路起点,红外接收元件作为光路终点,每个红外发射元件所确定的光路起点的光宽应相等于每个红外接收元件所确定的光路终点的光宽,设定每个红外发射元件所确定的光路起点的光宽为单位光宽;
依据触摸屏分辨率,确定单位光宽为n;从而建立一个坐标XY系,触摸屏左下角的点为原点(0,0),右上角的点为(Xmax,Ymax);从而使每个红外发射元件及红外接收元件都由两个坐标限定;
基于多边形的触摸区域定位方法,包括以下步骤:
(1)硬件初始化,从而确定,每个红外发射元件及红外接收元件所对应的座标,假定同角度单元光路的集合为一层光路层,确定光路层层数mmax及每层光路层的角度;
(2)在一帧内,检测所有单元光路,得出所有被挡住的单元光路;
(3)检测每层光路层中被挡住的单元光路,若该层光路层中被挡住的单元光路中具有相邻的单元光路则将这些相邻的单元光路进行合并,以形成一组光路;
(4)将经步骤(3)得到的每组光路和/或每个单元光路转化为多边形数据,即根据步骤(1)所确定的每个红外发射元件及红外接收元件所对应的座标,记录形成由步骤(3)得到的每组光路和/或每个光路的顶点的坐标,并存储在内存中,每组光路或每个单元光路对应一个多边形;
(5)将一层光路层中的多边形与另一层光路层中的多边形相交,根据两个任意多边形相交得到一个新的多边形的逻辑算法,得到一组新的多边形,该组新的多边形包括一个或一个以上的多边形单体,存储在内存中;
(6)将步骤(5)得到的该组新多边形再与另一层光路层中的多边形相交,根据步骤(5)的逻辑算法,再次得到一组新的多边形,存储于内存中;
(7)重复步骤(6)至完成所有光路层的多边形相交,从而得到最后一组多边形;
(8)对经步骤(7)得到最后组多边形中的每个多边形进行筛选,从而得到触摸发生区域;
步骤(8)中的筛选方法包括以下步骤:
a、对经步骤(4)得到的最后组多边形中的所有多边形单体进行检测,判定由最多层光路层相交得到的多边形单体为真触摸发生区域;若多边形单体由小于m层的光路层相交得到,则判定该多边形单体为假触摸发生区域;m小于光路层总层数;
b、若最后组多边形中的多边形单体由大于等于m层且小于总光路层层数的光路层相交得到,则检测经过该多边形单体的所有被挡住的光路,若存在经过该多边形单体但不经过已判定为真触摸发生区域的多边形单体的光路,则判定该多边形单体为真触摸发生区域,若不存在,则判定为假触摸发生区域。
作为本发明的一种实施方式,所述步骤S3中,计算多个被遮挡光路对应遮挡物体距离屏幕表面高度;而后进行加权平均,获取最终的遮挡物距离屏幕的距离。
作为本发明的一种实施方式,光路为截面宽w的正方形的长立方体,触摸物体为头部为圆锥体的形状,通过检测得到左边光路的遮挡为百分之a,右边为百分之b,那么光路被遮挡的剖面面积c为w*w*a/100+w*w*b/100,通过不同方向的光路相互叠加检测计算出触摸物体的直径L,根据三角形面积公式得出三角形的高h为2*c/L,那么物体距离屏幕的距离便是w-h。
本发明的有益效果在于:本发明提出的触摸屏物体离屏检测方法,可较为精确地得到触摸屏物体距离触摸屏的距离,避免对一些触摸操作误识别。
当触摸屏应用在书写上时,按照书写习惯,书写时抬笔的动作可能比较低,无法超过光路的高度,从而造成误识别,产生书写连笔现象,此时如果设定一个当笔距离屏幕表面多高时为抬笔就可以有效的解决连笔问题。
利用本发明方法,当落笔时,发现触摸笔未接触到屏幕表面时,此时识别到的触摸轨迹并非实际操作轨迹,当有效检测出笔的离屏高度时,可有效屏蔽这部分误操作,抬笔时也同理能屏蔽抬笔过程中的触摸路径。
此外,利用本发明还可以实现笔悬浮手势功能,以及支持其他一些需要知道高度的应用和功能。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。
该部分的描述只针对几个典型的实施例,本发明并不仅局限于实施例描述的范围。相同或相近的现有技术手段与实施例中的一些技术特征进行相互替换也在本发明描述和保护的范围内。
本发明揭示一种触摸屏物体离屏检测方法,图1为本发明一实施例中触摸屏物体离屏检测方法的流程图;请参阅图1,在本发明的一实施例中,所述检测方法包括:
步骤S1、获取各个接收灯接收各个光路的信号,通过接收的信号检测出光路未被遮挡的截面面积;
步骤S2、获取各光路的形状和触摸物体的形状,通过光路的形状和触摸物体的形状建立一个截面被遮挡的模型;该模型将未被遮挡的截面面积、各光路的形状、触摸物体的形状、触摸物体距离屏幕的高度值相关联;
步骤S3、通过未被遮挡的截面面积和建立的模型,获取该模型中的高度值,此高度值便是触摸物体距离屏幕的高度。
在本发明的一实施例中,步骤S1中,根据各个光路未被遮挡的信号遮挡率,以及光路的遮挡区域;光路的遮挡区域包括光路的两侧被遮挡、一侧或遮挡、或是两侧均为被遮挡。
在本发明的一实施例中,所述触摸物体为触摸笔,步骤S2中包括获取触摸笔的直径(如果触摸笔并非圆柱体,则将触摸笔看做类似大小的圆柱,获取圆柱的直径;由于触摸笔通常是与触摸屏配套使用的,可以根据配套使用的信息中获取触摸笔的直径信息)。
在本发明的一实施例中,步骤S2中,各光路为截面长宽为w的正方形柱体,触摸物体为圆柱体。步骤S2包括如下步骤中的至少一个:
步骤S21、判断是否存在光路两侧均被遮挡的光路,若存在,获取遮挡物体距离该光路对应区域屏幕表面的高度h1=(w*w)*(100-n1)/100/w;其中,两侧均被遮挡的光路的遮挡率为n1%;如图2所示。
步骤S22、判断是否存在光路相邻侧被遮挡的两条相邻光路,若存在,获取遮挡物体距离该光路对应区域屏幕表面高度h2=w-[(w*w)*n2+(w*w)*n3]/L/100,如图3所示。其中,相邻侧被遮挡的两条相邻光路的遮挡率分别为n2%、n3%,通过触摸屏各个方向的光路相交叠加获取遮挡物体的直径L。在本发明的一个实施例中,其中,光路的位置根据发射灯和接收灯的物理位置已经确定,两条光路是否相邻根据各自光路中发射灯发射的信号和接收灯接收的信号获得。
步骤S23、判断是否存在周边均为被遮挡、中部区域被遮挡的光路,若存在,获取遮挡物体距离该光路对应区域屏幕表面高度h3=w-(w*w)*n4/L/100,如图4所示。其中,两侧均未被遮挡的光路的遮挡率为n4%,通过触摸屏各个方向的光路相交叠加获取遮挡物体的直径L。
在本发明的一个实施例中,步骤S22、步骤S23中,计算触摸物体的直径L的方法包括:每条光路就是一个该光路形状的多边形,将所有被遮挡的光路看作是一个多边形,求所有多边形相与后的结果便是检测到的物体形状;计算触摸物体的形状采用如下方式的至少一种:
【1】将所有光路以像素的形式相互叠加,最后求出阴影最深的区域就是该物体的形状。
【2】请参阅图5,采用中国发明专利CN201410236907.8的触摸屏触摸区域定位方法计算触摸物体的形状。如可以包括如下步骤:
触摸屏四边分别设有红外发射元件及红外接收元件;设定从一个红外发射元件至一个红外接收元件的光路为单元光路;以红外发射元件作为光路起点,红外接收元件作为光路终点,每个红外发射元件所确定的光路起点的光宽应相等于每个红外接收元件所确定的光路终点的光宽,设定每个红外发射元件所确定的光路起点的光宽为单位光宽;
依据触摸屏分辨率,确定单位光宽为n;从而建立一个坐标XY系,触摸屏左下角的点为原点(0,0),右上角的点为(Xmax,Ymax);从而使每个红外发射元件及红外接收元件都由两个坐标限定。基于多边形的触摸区域定位方法,包括以下步骤:
(1)硬件初始化,从而确定,每个红外发射元件及红外接收元件所对应的座标,假定同角度单元光路的集合为一层光路层,确定光路层层数mmax及每层光路层的角度;
(2)在一帧内,检测所有单元光路,得出所有被挡住的单元光路;
(3)检测每层光路层中被挡住的单元光路,若该层光路层中被挡住的单元光路中具有相邻的单元光路则将这些相邻的单元光路进行合并,以形成一组光路;
(4)将经步骤(3)得到的每组光路和/或每个单元光路转化为多边形数据,即根据步骤(1)所确定的每个红外发射元件及红外接收元件所对应的座标,记录形成由步骤(3)得到的每组光路和/每个光路的顶点的坐标,并存储在内存中,每组光路或每个单元光路对应一个多边形;
(5)将一层光路层中的多边形与另一层光路层中的多边形相交,根据两个任意多边形相交得到一个新的多边形的逻辑算法,得到一组新的多边形,该组新的多边形包括一个或一个以上的多边形单体,存储在内存中;
(6)将步骤(5)得到的该组新多边形再与另一层光路层中的多边形相交,根据步骤(5)的逻辑算法,再次得到一组新的多边形,存储于内存中;
(7)重复步骤(6)至完成所有光路层的多边形相交,从而得到最后一组多边形;
(8)对经步骤(7)得到最后组多边形中的每个多边形进行筛选,从而得到触摸发生区域。
步骤(8)中的筛选方法包括以下步骤:
a、对经步骤(4)得到的最后组多边形中的所有多边形单体进行检测,判定由最多层光路层相交得到的多边形单体为真触摸发生区域;若多边形单体由小于m层的光路层相交得到,则判定该多边形单体为假触摸发生区域;m小于光路层总层数;
b、若最后组多边形中的多边形单体由大于等于m层且小于总光路层层数的光路层相交得到,则检测经过该多边形单体的所有被挡住的光路,若存在经过该多边形单体但不经过已判定为真触摸发生区域的多边形单体的光路,则判定该多边形单体为真触摸发生区域,若不存在,则判定为假触摸发生区域。
(9)在获得遮挡物体具体形状后,获得其直径L。
在本发明的一个实施例中,所述步骤S3中还包括:计算多个被遮挡光路对应遮挡物体距离屏幕表面高度;而后进行加权平均,获取最终的遮挡物距离屏幕的距离。
在本发明的一个实施例中,光路为截面宽w的正方形的长立方体,触摸物体为头部为圆锥体的形状,通过检测得到左边光路的遮挡为百分之a,右边为百分之b,那么光路被遮挡的剖面面积c为w*w*a/100+w*w*b/100,通过不同方向的光路相互叠加检测计算出触摸物体的直径L,根据三角形面积公式得出三角形的高h为2*c/L,那么物体距离屏幕的距离便是w-h。
在本发明的一个实施例中,触摸屏物体离屏检测方法实现了在光路感应范围之内,通过计算每条被遮挡光路的遮挡面积,以及相邻光路之间的关系,通过几何数学公式,实现了物体于屏幕表面之间的悬浮距离检测。
为了便于计算,假设触摸屏表面为绝对平整,假设每条光路的几何形状为一个截面长宽为w的正方形柱体,并且该柱体的下表面紧贴触摸屏表面,假设遮挡物为一个圆柱体,那么当有该物体落在某条光线a穿过的区域时,接收灯检测到的信号被遮挡n%;
在本发明的一个实施例中,分以下三种情况处理:
1、当与检测到的光路a相邻的右边和左边的光路都有信号被遮挡,那么表示光线a被遮挡的截面如图2所示,那么物体距离屏幕表面的高度为(w*w)*(100-n)/100/w,通过公式发现,当遮挡率为100%时,物体于屏幕表面零距离接触,当遮挡率为50%时,物体于屏幕表面距离为w/2;
2、当与检测到的光路a相邻的左边或右边只有一条光路有信号被遮挡时,那么光路的遮挡截面示意图如图3所示,假设另一条被遮挡的光路的信号遮挡率为m%,首先,通过触摸屏各个方向的光路相交叠加求出物体的直径大小L,那么图3中阴影面积s=(w*w)*n/100+(w*w)*m/100,阴影高h=s/L,物体距离屏幕表面为w-h;
3、当与检测到的光路a相邻的左边或右边的光路都没有信号被遮挡,那么这时的遮挡截面是这样的,首先,通过触摸屏各个方向的光路相交叠加求出物体的直径大小L,那么图4中的阴影面积s=(w*w)*n/100,阴影高h=s/L,物体距离屏幕表面为w-h。
为提高计算的精准度,可以将触摸屏上通过该物体的各个方向的光路求出各自的高度,然后加权求均,得出最后的高度距离。
在本发明的一实施例中,如果对检测精度要求不高,可以直接用与实际触摸物体相似的简单模型去匹配,不需要将模型建的与实际物体一模一样。
在本发明的一实施例中,如果触摸物体是一支触摸笔,则可以预设笔的直径,不需要再通过光路叠加计算直径。
不同形状,截面的模型自然也不同,比如:在本发明的一个实施例中,假设光柱是一个长立方体,触摸物体是一个头部为园椎体的形状,那么截面如此图6所示,通过检测得到左边光路的遮挡为百分之a,右边为百分之b,光路截面为宽w的正方形,那么阴影面积c为w*w*a/100+w*w*b/100,通过不同方向的光路相互叠加检测计算出触摸物体的直径L,根据三角形面积公式得出三角形的高h为2*c/L,那么物体距离屏幕的距离便是w-h。
当遮挡物为其他形状,或是光路为其他形状时,计算原理相同,都可以通过几何数据公式求出各个截面上遮挡阴影距离触摸屏表面的距离。基本原理不变,首先通过信号检测检测出光路未被遮挡的截面面积,然后通过已知光路的形状和触摸物体的大概形状,建立一个截面被遮挡的模型,通过面积和模型形状,求出该模型的高度,此高度便是物体距离屏幕的高度。
以上实施例模型中计算高度的方法也非只此一种,除了数学几何之外,还有很多其他方法求出该模型的高度,不再一一举例。
综上所述,本发明提出的触摸屏物体离屏检测方法,可较为精确地得到触摸屏物体距离触摸屏的距离,避免对一些触摸操作误识别。
当触摸屏应用在书写上时,按照书写习惯,书写时抬笔的动作可能比较低,无法超过光路的高度,从而造成误识别,产生书写连笔现象,此时如果设定一个当笔距离屏幕表面多高时为抬笔就可以有效的解决连笔问题。
利用本发明方法,当落笔时,发现触摸笔未接触到屏幕表面时,此时识别到的触摸轨迹并非实际操作轨迹,当有效检测出笔的离屏高度时,可有效屏蔽这部分误操作,抬笔时也同理能屏蔽抬笔过程中的触摸路径。
此外,利用本发明还可以实现笔悬浮手势功能,以及支持其他一些需要知道高度的应用和功能。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。