具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种触摸屏触点坐标去抖动的方法,如图1所示,该方法包括:
101、获取触摸屏当前的触点坐标。
其中,所述获取触摸屏当前的触点坐标可以根据现有技术中的任一方法实现,本发明实施例对此不进行限制;例如,当所述触摸屏为电阻式触摸屏时,该电阻式触摸屏将笔点产生的触点压力转换为电阻变化,并由触摸屏控制器将这种电阻变化转换成X轴和Y轴的触点坐标。
102、当所述当前的触点坐标与其前一个触点坐标的距离小于或等于第一阈值时,根据所述当前的触点坐标与所述当前触点之前触点坐标,判断所述当前的触点坐标是否发生抖动。
其中,为了避免触点坐标的较大抖动,一般在获取了触点坐标之后,需要将触点坐标中抖动比较大的触点坐标进行过滤处理,进行过滤处理时可以采用现有技术中的方法,例如可以包括判断连续两个触点坐标的距离是否大于预定阈值,若大于预定阈值,则通过计算当前触点前N个触点坐标的加权平均值作为当前的触点坐标;或者通过判断当前触点与其下一个触点之间的距离与一定阈值的关系,确定前触点坐标;需要说明的时,由于需要将抖动较大的触点坐标过滤掉,该第一阈值的取值以便比较大,因此即使所述当前的触点坐标与其前一个触点坐标的距离小于或等于第一阈值,该当前触点也有可能存在较小的抖动,所以当所述当前的触点坐标与其前一个触点坐标的距离小于或等于第一阈值时,需要进一步的执行步骤102根据所述当前的触点坐标与所述当前触点之前触点坐标,判断该当前触点坐标是否发生抖动。
其中,所述根据所述当前的触点坐标与所述当前触点之前触点坐标,判断所述当前的触点坐标是否发生抖动,可以采用以下两种方法实现,包括:
通过所述当前的触点坐标与其前一个触点坐标的距离,以及所述当前的触点坐标与其前N个触点坐标的加权平均距离,判断所述当前的触点坐标是否发生抖动;或者
通过所述当前的触点坐标与其前N个触点坐标的加权平均距离,判断所述当前的触点坐标是否发生抖动。
103、若发生抖动,将所述当前的触点坐标丢弃。
本发明实施例中,当根据第一阈值判定当前的触点坐标没有抖动时,进一步根据所述当前的触点坐标与所述当前触点之前触点坐标,判断所述当前的触点坐标是否发生抖动,若发生抖动,则将其丢弃;与现有技术中仅使用一个阈值判断当前的触点坐标是否发生抖动相比,能够更精确的判定当前的触点坐标是否发生抖动,从而在触点坐标的抖动比较小时,也可以消除触点坐标的抖动问题。
实施例2
本发明实施例提供一种触摸屏触点坐标去抖动的方法,在实施该方法时,可以通过所述当前的触点坐标与其前一个触点坐标的距离,以及所述当前的触点坐标与其前N个触点坐标的加权平均距离,确定所述当前的触点坐标是否发生抖动;如图2所示,该方法包括:
201、获取触摸屏当前的触点坐标。其中,所述获取触摸屏当前的触点坐标可以参考实施例1中步骤101中的描述,此处将不再赘述。
202、计算所述当前的触点坐标与其前一个触点坐标的距离。
例如,所述当前触点坐标为(x0,y0),其前一个触点坐标为(x1,y1),则所述当前的触点坐标与其前一个触点坐标的距离为
203、判断所述当前的触点坐标与其前一个触点坐标的距离是否大于第一阈值;当所述距离小于或等于所述第一阈值,则执行步骤204;当所述距离大于所述第一阈值,则执行步骤211。
其中,所述第一阈值为一经验值,为了将抖动较大的触点坐标过滤掉,并且避免将过多触点坐标丢弃,该第一阈值的取值一般比较大,例如,该第一阈值可以为64触摸屏像素。
其中,所述当前的触点坐标与其前一个触点坐标的距离小于或等于所述第一阈值,表明所述当前的触点坐标不属于较大抖动的范围,但不排除较小范围的抖动,因此执行步骤204,以便对所述当前的触点坐标进行进一步的判断处理。
204、判断所述当前的触点坐标与其前一个触点坐标的距离是否大于第二阈值;当所述距离大于所述第二阈值,则执行步骤205;当所述距离小于或等于所述第二阈值,表明当前的触点应该是静止不动的,只是该触点采样的触点坐标有轻微的抖动,则执行步骤210。
其中,所述第二阈值为一经验值,为了对所述触点坐标进行进一步的判断处理,所述第二阈值一般设置为一个相邻触点坐标的最小值,例如,所述第二阈值可以为4触摸屏像素或8触摸屏像素。
205、计算所述当前的触点坐标与其前N个触点坐标的加权平均距离。
例如,所述当前触点坐标为(x0,y0),其前N个触点的坐标为(xi,yi),其中,i=1,2,3,...,N,对所述当前的触点坐标与其前N个触点坐标的每个距离,设置不同的权值,从第1个触点到第N个触点对应的权值依次为a1,a2,...,aN,则所述当前的触点坐标与其前N个触点坐标的加权平均距离为:
当每个距离的权值都为1时,即a1=a2=...=aN=1时,所述当前的触点坐标与其前N个触点坐标的加权平均距离为:
其中,i=1,2,3,...,N。
206、判断所述加权平均距离是否小于第三阈值;当所述加权平均距离小于所述第三阈值,表明该当前触点为较慢速度移动的触点,其对应的触点坐标为正常触点坐标,则执行步骤207;当所述加权平均距离大于或等于所述第三阈值,则执行步骤208。
其中,所述第三阈值为一经验值,一般要求大于第二阈值而小于第一阈值,例如可以为32触摸屏像素,但本发明实施例对此不进行限制。
其中,所述加权平均距离大于或等于第三阈值,则表明所述当前触点移动范围比较大,但不能断言当前触点坐标发生了抖动,因为在触点移动比较快时,所述计算得到的所述加权平均距离也可能超过所述第三阈值;因此在所述加权平均值大于或等于所述第三阈值时,还可以进一步的判断所述当前触点坐标是发生了抖动,还是触点移动过快,故执行步骤208。
207、确定所述当前的触点坐标没有发生抖动,将所述当前的触点坐标上报应用层,结束当前的触点坐标的处理。
208、判断所述加权平均距离是否大于第六阈值,当所述加权平均距离大于所述第六阈值,表明触点移动较快,但触点坐标正常,则执行步骤207;当所述加权平均距离小于或等于所述第六阈值,表明该当前触点即不是慢速移动的触点,也不是快速移动的触点,而是发生了较大抖动的触点,则执行步骤209。
其中,所述第六阈值为一经验值,为将触点移动较快的触点坐标判断出来,一般将所述第六阈值设置为一个比较大的值,但其小于第一阈值,例如,可以为48触摸屏像素。
209、确定所述当前的触点坐标发生抖动,将所述当前的触点坐标丢弃,结束当前的触点坐标的处理。
210、将所述当前触点的前一个触点坐标作为所述当前的触点坐标,并确定替换后的当前的触点坐标没有发生抖动,将所述替换后的当前触点坐标上报应用层,结束当前的触点坐标的处理。
211、依据现有技术中已有方案确定所述当前的触点坐标,结束当前的触点坐标的处理。
其中,所述依据现有技术中已有方案确定所述当前的触点坐标,可以采用以下方法实现,可以包括:第一种,通过计算当前触点前N个触点坐标的加权平均值作为当前的触点坐标,并将所述确定的当前的触点坐标上报给应用层;第二种,通过判断当前的触点坐标与其下一个触点坐标之间的距离与预定阈值的关系,确定当前的触点坐标,具体为:若所述当前的触点坐标与其下一个触点坐标之间的距离小于所述一定阈值,则确定所述当前的触点坐标没有发生抖动,将所述当前的触点坐标上报给应用层;若所述当前的触点坐标与其下一个触点坐标之间的距离大于或等于所述一定阈值,则确定所述当前的触点坐标发生抖动,将所述当前的触点坐标丢弃。
本发明实施例中,当根据第一阈值判定当前的触点坐标没有抖动时,进一步根据所述当前的触点坐标与所述当前触点之前触点坐标,判断所述当前的触点坐标是否发生抖动,若发生抖动,则将其丢弃,若没有发生抖动,则将其上报应用层;与现有技术中仅使用一个阈值判断当前的触点坐标是否发生抖动相比,能够更精确的判定当前的触点坐标是否发生抖动,从而在触点抖动比较小时,也可以消除触点坐标抖动的问题。
并且,当根据第一阈值判定当前的触点坐标没有抖动时,设定了相邻触点坐标的最小阈值即第二阈值,对所述当前的触点坐标进行是否为抖动坐标的判断,有效的实现了在触点坐标抖动较小的情况下,消除触点坐标抖动的问题。
进一步的,采用当前的触点坐标与其前N个触点坐标的加权平均距离,作为判断当前的触点坐标是否发生抖动的依据,有效的实现了在触点坐标抖动较小的情况下,可以消除触点坐标抖动的问题。
实施例3
本发明实施例提供一种触摸屏触点坐标去抖动的方法,本发明实施例以通过所述当前的触点坐标与其前N个触点坐标的平均距离,确定所述当前的触点坐标是否发生抖动为例,阐述该方法,如图3所示,该方法包括:
301、获取触摸屏当前的触点坐标。
其中,所述获取触摸屏当前的触点坐标可以参考实施例1中步骤101中的描述,此处将不再赘述。
302、计算所述当前的触点坐标与其前一个触点坐标的距离,具体可以参考实施例2中步骤202中的描述,此处将不再赘述。
303、判断所述当前的触点坐标与其前一个触点坐标的距离是否大于第一阈值;当所述距离小于或等于所述第一阈值,则执行步骤304;当所述距离大于所述第一阈值,则执行步骤310。
其中,所述第一阈值为一经验值,为了将抖动较大的触点坐标过滤掉,并且避免将过多触点坐标丢弃,该第一阈值的取值一般比较大,例如,该第一阈值可以为64触摸屏像素。
其中,所述当前的触点坐标与其前一个触点坐标的距离小于或等于所述第一阈值,表明所述当前的触点坐标不属于较大抖动的范围,但不排除较小范围的抖动,因此执行步骤304,以便对所述当前的触点坐标进行进一步的判断处理。
304、计算所述当前的触点坐标与其前N个触点坐标的加权平均距离。
其中,计算所述加权平均距离可以参考实施例2中步骤205中的描述,此处将不再赘述。
305、判断所述加权平均距离是否小于第四阈值;当判定所述加权平均距离大于或等于所述第四阈值,则执行步骤306;当判定所述加权平均距离小于所述第四阈值,表明该当前触点为静止的触点,但其对应的触点坐标发生了轻微的抖动,则执行步骤308。
其中,所述第四阈值为经验值,其可以为4触摸屏像素或8触摸屏像素,但本发明实施例对此不进行限制。
306、判断所述加权平均距离是否小于第五阈值;当判定所述加权平均距离大于或等于所述第五阈值,则执行步骤307;当判定所述加权平均距离小于所述第五阈值,则309。
其中,所述第五阈值为经验值,其可以为32触摸屏像素。
其中,所述加权平均距离大于或等于第五阈值,则表明所述当前触点移动范围比较大,但不能断言当前触点坐标发生了抖动,因为在触点移动比较快时,所述计算得到的所述加权平均距离也可能超过所述第五阈值;因此在所述加权平均值大于或等于所述第五阈值时,还可以进一步的判断所述当前触点坐标是发生了抖动,还是触点移动过快,故执行步骤307。
307、判断所述加权平均距离是否大于第六阈值,当所述加权平均距离大于所述第六阈值,表明触点移动过快,但触点坐标正常,则执行步骤309;当所述加权平均距离小于或等于所述第六阈值,表明该当前触点即不是慢速移动的触点,也不是快速移动的触点,而是发生了较大抖动的触点,则执行步骤308。
其中,所述第六阈值为一经验值,为将触点移动较快的触点坐标判断出来,一般将所述第六阈值设置为一个比较大的值,但其小于第一阈值,例如,可以为48触摸屏像素。
308、确定所述当前的触点坐标发生抖动,将所述当前的触点坐标丢弃,结束当前的触点坐标的处理。
309、确定所述当前的触点坐标没有发生抖动,将所述当前的触点坐标上报给应用层,结束当前的触点坐标的处理。
310、依据现有技术中已有方案确定所述当前的触点坐标,结束当前的触点坐标的处理。
其中,所述依据现有技术中已有方案确定所述当前的触点坐标,可以参考实施例2中的步骤211中的描述,此处将不再赘述。
本发明实施例中,当根据第一阈值判定当前的触点坐标没有抖动时,进一步根据所述当前的触点坐标与所述当前触点之前触点坐标,判断所述当前的触点坐标是否发生抖动,若发生抖动,则将其丢弃,若没有发生抖动,则将其上报应用层;与现有技术中仅使用一个阈值判断当前的触点坐标是否发生抖动相比,能够更精确的判定当前的触点坐标是否发生抖动,从而在触点抖动情况比较小时,也可以消除触点坐标抖动的问题。
并且,本发明实施例中,采用当前的触点坐标与其前N个触点坐标的加权平均距离,作为判断当前的触点坐标是否发生抖动的依据,有效的实现了在触点坐标抖动范围较小的情况下,消除触点坐标抖动的问题。
实施例4
本发明实施例提供一种取消触摸屏触点坐标抖动的装置,如图4所示,该装置包括:获取单元41、确定单元42和处理单元43。
获取单元41,用于获取触摸屏当前的触点坐标;其中,所述获取触摸屏当前的触点坐标可以根据现有技术中的任一方法实现,本发明实施例对此不进行限制;例如,当所述触摸屏为电阻式触摸屏时,该电阻式触摸屏将笔点产生的触点压力转换为电阻变化,并由触摸屏控制器将这种电阻变化转换成X轴和Y轴的触点坐标。
确定单元42,用于当所述当前的触点坐标与其前一个触点坐标的距离小于或等于第一阈值时,根据所述当前的触点坐标与所述当前触点之前触点坐标,判断所述当前的触点坐标是否发生抖动;其中,所述确定单元42可以通过所述当前的触点坐标与其前一个触点坐标的距离,以及所述当前的触点坐标与其前N个触点坐标的加权平均距离,判断所述当前的触点坐标是否发生抖动;或者所述确定单元42还可以通过所述当前的触点坐标与其前N个触点坐标的加权平均距离,确定所述当前的触点坐标是否发生抖动。
处理单元43,用于在所述确定单元42确定发生抖动时,将所述当前的触点坐标丢弃。
进一步的,当所述确定单元42通过所述当前的触点坐标与其前一个触点坐标的距离,以及所述当前的触点坐标与其前N个触点坐标的加权平均距离,确定所述当前的触点坐标是否发生抖动时,如图5所示,所述确定单元42包括:第一判断模块421、第一计算模块422、第二判断模块423和第一确定模块424。
第一判断模块421,用于判断所述当前的触点坐标与其前一个触点坐标的距离是否大于第二阈值;第一计算模块422用于在所述距离大于所述第二阈值时,计算所述当前的触点坐标与其前N个触点坐标的加权平均距离,所述加权平均距离的计算具体可以参考实施例2中步骤205中的描述,此处将不再赘述。其中,所述第二阈值为一经验值,为了对所述触点坐标进行进一步的判断处理,所述第二阈值一般设置为一个相邻触点坐标的最小值,例如,所述第二阈值可以为4触摸屏像素或8触摸屏像素。
第二判断模块423,用于判断所述第一计算模块422得到的所述加权平均距离是否小于第三阈值;当所述加权平均距离小于所述第三阈值时,第一确定模块424用于确定所述当前的触点坐标没有发生抖动;在所述加权平均距离大于或等于所述第三阈值时,所述第一确定模块424还用于确定所述当前的触点坐标发生抖动。其中,所述第三阈值为一经验值,一般要求大于第二阈值而小于第一阈值,例如可以为32触摸屏像素,但本发明实施例对此不进行限制。
进一步的,如图6所示,所述确定单元还包括:处理模块425。
处理模块425,用于当所述距离小于或等于所述第二阈值时,以所述当前触点的前一个触点坐标替换所述当前的触点坐标;所述第一确定模块424还用于,确定替换后的当前的触点坐标没有发生抖动。
进一步的,当所述加权平均值大于或等于所述第三阈值时,为了进一步确定所述当前的触点坐标是否发生抖动,如图7所示,所述确定单元42还包括:第五判断模块4210和第三确定模块4211。
第五判断模块4210,用于当所述加权平均距离大于或等于第三阈值时,判断所述加权平均距离是否大于第六阈值;第三确定模块4211,用于当所述加权平均距离大于所述第六阈值时,确定所述当前的触点坐标没有发生抖动;所述第三确定模块4211还用于,当所述加权平均距离小于或等于所述第六阈值时,确定所述当前的触点坐标发生抖动。
进一步,当所述确定单元42通过所述当前的触点坐标与其前N个触点坐标的加权平均距离,确定所述当前的触点坐标是否发生抖动时,如图8所示,所述确定单元42包括:第二计算模块426、第三判断模块427、第二确定模块428、第四判断模块429。
第二计算模块426,用于当所述当前的触点坐标与其前一个触点坐标的距离小于或等于第一阈值时,计算所述当前的触点坐标与其前N个触点坐标的加权平均距离,所述加权平均距离的计算具体可以参考实施例2中步骤205中的描述,此处将不再赘述。
第三判断模块427,用于判断所述第二计算模块426计算得到的所述加权平均距离是否小于第四阈值,所述第四阈值为经验值,其可以为4触摸屏像素或8触摸屏像素,但本发明实施例对此不进行限制;在所述加权平均距离小于所述第四阈值时,第二确定模块428,用于确定所述当前的触点坐标发生抖动。
在所述加权平均距离大于或等于所述第四阈值时,第四判断模块429,用于判断所述加权平均距离是否小于第五阈值,所述第五阈值为经验值,其可以为32触摸屏像素;在所述加权平均距离小于所述第五阈值时,所述第二确定模块428还用于,确定所述当前的触点坐标没有发生抖动。
进一步,当所述加权平均值大于或等于所述第五阈值时,为了进一步确定所述当前的触点坐标是否发生抖动,如图9所示,所述确定单元42还包括:第五判断模块4210和第三确定模块4211。
第五判断模块4210,用于当所述加权平均距离大于或等于第五阈值时,判断所述加权平均距离是否大于第六阈值;第三确定模块4211,用于当所述加权平均距离大于所述第六阈值时,确定所述当前的触点坐标没有发生抖动;所述第三确定模块4211还用于,当所述加权平均距离小于或等于所述第六阈值时,确定所述当前的触点坐标发生抖动。
本发明实施例中,当根据第一阈值判定当前的触点坐标没有抖动时,进一步根据所述当前的触点坐标与所述当前触点之前触点坐标,确定所述当前的触点坐标是否发生抖动,若发生抖动,则将其丢弃,若为没有发生抖动,则将其上报应用层;与现有技术中仅使用一个阈值判断当前的触点坐标是否发生抖动相比,能够更精确的判定当前的触点坐标是否发生抖动,从而在触点坐标抖动比较小时,也可以消除触点坐标抖动的问题。
并且,当根据第一阈值判定当前的触点坐标没有抖动时,设定了相邻触点坐标的最小阈值即第二阈值,作为判断所述当前的触点坐标是否发生抖动的依据,有效的实现了在触点坐标抖动较小的情况下,消除触点坐标抖动的问题。
进一步的,采用当前的触点坐标与其前N个触点坐标的加权平均距离,作为判断当前的触点坐标是否发生抖动的依据,有效的实现了在触点坐标抖动较小的情况下,消除触点坐标抖动的问题。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。