首页> 中国专利> 一种多点触控的手势识别方法及防误触方法

一种多点触控的手势识别方法及防误触方法

摘要

本发明公开了一种多点触控的手势识别方法及防误触方法,该手势识别方法包括:定义画布触摸管理方式,将画布触摸分为手势触摸和绘制触摸;定义画布模式下的有限状态机FSM中的状态转换过程;通过触摸面积和触摸时的压强判断触摸个数和触摸类型;给每个触摸点添加ID字段,并追踪触摸状态的变化;根据追踪触摸状态的变化,通过移动检测阈值消除触摸抖动;结合设置的ID,从而进行触摸分组,实现多点触控的手势识别。本发明能够同时支持多个单指绘制和3指以上的橡皮擦操作,突破了系统只能工作在识别单个触摸操作的情况;并且,通过触摸分组,可以实现多个人同时单指绘制、多个人同时3指以上擦除操作。

著录项

  • 公开/公告号CN113031817A

    专利类型发明专利

  • 公开/公告日2021-06-25

    原文格式PDF

  • 申请/专利权人 安徽宝信信息科技有限公司;

    申请/专利号CN202110311452.1

  • 发明设计人 李广垒;方田;陈祖涛;

    申请日2021-03-19

  • 分类号G06F3/041(20060101);G06F3/0485(20130101);G06F3/0486(20130101);G06F3/0488(20130101);

  • 代理机构34147 合肥律众知识产权代理有限公司;

  • 代理人赵娟

  • 地址 230088 安徽省合肥市高新区习友路3333号中国(合肥)国际智能语音产业园研发中心楼309室

  • 入库时间 2023-06-19 11:35:49

说明书

技术领域

本发明涉及人机交互领域,尤其涉及是一种多点触控的手势识别方法及防误触方法。

背景技术

随着智能化浪潮的推进,众多行业领域逐步进入数字化的远程时代,类似于大型显示屏设备中的电子白板的绘制类软件被广泛的应用于相关领域,尤其是教育教学、直播互动和远程会议方向。人机交互的方式也由最常见的键盘鼠标显示器,额外增加了多指触控的交互方式。

然而,现有技术中,多指触控的交互方式,存在较多的问题。例如,各个操作系统的平台厂商,发展存在差异,继而导致软件行业的开发者在切换不同的平台和操作系统,尤其是在国产化操作系统上进行开发多指触控的交互方式时,难以做到兼容和统一,阻碍了统一软件的开发与发展。并且,现有的技术方案在手势识别的设计与实现方面仅仅解决了多指手势识别,并不能很好的区别触摸笔和手指的差异,当系统工作时存在多个接触点(手指和触摸笔),如果不能对接触点进行区分,会造成误触的问题。

发明内容

针对现有技术存在的问题,本发明提出的一种多点触控的手势识别方法及防误触方法。

一方面,本发明保护一种多点触控的手势识别方法,该方法包括如下步骤S1至S6:

步骤S1:定义画布触摸管理方式,将画布触摸分为手势触摸和绘制触摸。

进一步地,由于软件画布可能是无边无际的,绘制触摸状态下,对当前屏幕以外的区域不需要使用,因此,采用的是画布坐标系。此时,对于像触摸笔、鼠标的触摸操作,定义为单点触摸操作;对于手指的触摸操作,可根据触摸点,分为单点触摸和多点触摸。其中,单点触摸支持:绘制笔记等操作;多点触摸支持:擦除等操作。

更进一步地,当需要使用更大区域的画布,则选择手势触摸状态,对画布进行平移和缩放,因此,采用的是屏幕坐标系。

步骤S2:定义画布模式下的有限状态机FSM中的状态转换过程。

进一步地,具体转换为:程序进入运行期间,用户可以进行状态的选取。若用户没有进行状态的选取,进入程序后,FSM的工作状态将会被初始化为绘制状态;接下来,用户可以通过状态转换进行重新选取,将当前的任意一种工作状态切换为指定的:选择状态、编辑状态和绘制状态中的一种。同时,用户可以通过外部操作,如插入对象,强制切换到编辑状态。当工作在选择状态下,选中了对象后,则自动切换为编辑状态;当工作在编辑状态下,通过单点触摸BindingBox以外的部分,则自动取消编辑状态并同时切换到单点触摸中的:绘制状态或橡皮擦状态。

步骤S3:通过触摸面积和触摸时的压强判断触摸个数和触摸类型。

进一步地,具体划分为:

3.1:当触摸面积和压强在一定阈值内,认定为手指触摸中的单点触摸;

3.2:当压强高于某个阈值,触摸面积在一定阈值内,则认定为触摸笔的单点触摸;

3.3:当触摸面积超过某个阈值后,需要将触摸面积内,压强较大的点选出,通过计算触摸中心点的压强大小,界定触摸点的个数,认定为手势触摸或者绘制触摸下多点触摸。

步骤S4:给每个触摸点添加ID字段,并追踪触摸状态的变化。

进一步地,因为计算机处理方式为串行处理,即便多根手指看似同时触摸屏幕,对于计算机而言,也是按照时间内先后顺序,一个个的记录下触摸发生的状态,当做一个个的单点触摸。所以,需要通过给每个触摸点添加ID字段,便于后期分组。

更进一步地,触摸状态可分为:

4.1:悬停于触摸图形界面上方,但没有按下和移动的Enter状态;

4.2:在支持触摸处理的图形界面里发生触摸和屏幕接触的Press状态;

4.3:在支持触摸处理的图形界面里移动的Move状态:;

4.4:松开触摸后,鼠标或者是隐藏的触摸光标仍在支持触摸处理的图形界面内的Release状态;

4.5:离开支持触摸处理的图形界面的Leave状态。

步骤S5:根据追踪触摸状态的变化,通过移动检测阈值消除触摸抖动。

进一步地,具体处理过程为:

S51:设置软件,使得触摸屏存在一个按照固定频率扫描屏幕并检测触摸状态的周期性操作,优选地,每秒扫描5次;

S52:当用户将手指或触摸笔接触屏幕后,系统会不断收到触摸发生的位置和触摸的状态,第一次接触到屏幕的状态是Press,之后系统默认状态为Move;

S53:把每个触摸点经触摸检测扫描产生的触摸位置信息做前相比较,当后一个位置相对于前一个位置没有发生移动检测阈值内的移动时,就认为对应的触摸点没有产生移动的操作,从而将发送的Move状态强制改为Press状态。

步骤S6:结合设置的ID,从而进行触摸分组,实现多点触控的手势识别。

进一步地,触摸分组的步骤为:

S61:将逐次进入的触摸点,消除抖动后都没有产生移动,则分为一组;

S62:若第一次进入的触摸,超过移动检测阈值,则分为一组;

S63:若后进入的触摸,超出移动检测阈值,则将该触摸与先前一组没有发生移动的触摸归为一组。

更进一步地,手势识别过程为:

S64:如果触摸分组中的一组只存在一个触摸点,则状态机FSM工作在绘制触摸下的某个操作;

S65:如果触摸分组中的一组只存在两个触摸点且先前也没有其他任何触摸点,则将这两个触摸点认定为手势触摸下的拖拽缩放操作;如果触摸分组中的一组只存在两个触摸点且先前存在其他触摸点,因为缩放拖拽操作和其他工作模式互斥,因此忽略这一组操作;

S66:如果触摸分组中的一组存在三个乃至以上的触摸点,则认定是一个手势实现的擦除操作。

另一方面,本发明还保护一种多点触控的防误触方法,使用实施例1所述的手势识别方法对多点触控操作进行识别,在精准识别的基础上实现防误触。

进一步地,一旦同一组的触摸点中存在移动,不仅分组被确定,而且即便这一组的触摸点之后不再超过移动检测阈值,检测程序扫描到的状态都将被强制修改为Press状态,从而确定手势或者是限定有限状态机FSM的工作状态,并在所有手指离开之前不再做变更;一旦有限状态机FSM被限定,则后入的其他触摸行为也会变成有限状态机FSM限定时的工作状态,除非所有手指离开,有限状态机FSM才允许变更状态,从而实现多点触控的防误触。

另一方面,本发明还保护一种通用平台下多点触控的手势识别和防误触系统,基于上述设计的手势识别方法和上述设计的防误触方法。首先搭建支持各个操作系统下的通用平台,再基于该平台,开发通用平台下多点触控的手势识别和防误触系统。

具体地,基于Microsoft通用平台框架Xamarin开发支持Android/iOS/Wind ows和国产操作系统下的通用软件;基于.Net Core对各平台进行统一封装,封装支持了每个平台都具备的能力,损失了各自平台独有的特性,其中,.NET Core具有构建现代、可伸缩和高性能的跨平台软件应用程序的优点;若需要支持多平台的通用性,则使用扩展的Xamarin.Essentials,开发各自平台需求支持的独特功能,其中,扩展的Xamarin.Essentials把因为平台差异造成的代码不一致的底层接口重新做了归一,提升了开发效率。

本发明的有益效果:1、同时支持多个单指绘制和3指以上的橡皮擦操作,突破了系统只能工作在识别单个触摸操作的情况;2、通过触摸分组,可以实现多个人同时单指绘制、多个人同时3指以上擦除操作;3、通过将拖拽和缩放设置为独占模式,且与其他的工作模式互斥,因此不会影响用户的使用体验;4、通过搭建支持各个操作系统下的通用平台,使得精准手势识别,不局限于某一种操作系统。

附图说明

图1为多点触控的手势识别方法的流程图;

图2为有限状态机FSM中的状态转换流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

实施例1

一种多点触控的手势识别方法,如图1所示,该方法包括如下步骤S1至S6:

S1:定义画布触摸管理方式,将画布触摸分为手势触摸和绘制触摸。

具体地,由于软件画布可能是无边无际的,绘制触摸状态下,对当前屏幕以外的区域不需要使用,因此,采用的是画布坐标系。此时,对于像触摸笔、鼠标的触摸操作,定义为单点触摸操作;对于手指的触摸操作,可根据触摸点,分为单点触摸和多点触摸。其中,单点触摸支持:绘制笔记等操作;多点触摸支持:擦除等操作。

当需要使用更大区域的画布,则选择手势触摸状态,对画布进行平移和缩放,因此,采用的是屏幕坐标系。

S2:定义画布模式下的有限状态机FSM中的状态转换过程。

如图2所示,具体转换为:程序进入运行期间,用户可以进行状态的选取。若用户没有进行状态的选取,进入程序后,FSM的工作状态将会被初始化为绘制状态;接下来,用户可以通过状态转换进行重新选取,将当前的任意一种工作状态切换为指定的:选择状态、编辑状态和绘制状态中的一种。同时,用户可以通过外部操作,如插入对象,强制切换到编辑状态。当工作在选择状态下,选中了对象后,则自动切换为编辑状态;当工作在编辑状态下,通过单点触摸BindingBox以外的部分,则自动取消编辑状态并同时切换到单点触摸中的:绘制状态或橡皮擦状态。

S3:通过触摸面积和触摸时的压强判断触摸个数和触摸类型。

具体划分为:

S31:当触摸面积和压强在一定阈值内,认定为手指触摸中的单点触摸;

S32:当压强高于某个阈值,触摸面积在一定阈值内,则认定为触摸笔的单点触摸;

S33:当触摸面积超过某个阈值后,需要将触摸面积内,压强较大的点选出,通过计算触摸中心点的压强大小,界定触摸点的个数,认定为手势触摸或者绘制触摸下多点触摸。

S4:给每个触摸点添加ID字段,并追踪触摸状态的变化。

具体地,因为计算机处理方式为串行处理,即便多根手指看似同时触摸屏幕,对于计算机而言,也是按照时间内先后顺序,一个个的记录触摸发生的状态,当做一个个的单点触摸。所以,需要通过给每个触摸点添加ID字段,便于后期分组。

具体地,触摸状态可分为:

S41:悬停于触摸图形界面上方,但没有按下和移动的Enter状态;

S42:在支持触摸处理的图形界面里发生触摸和屏幕接触的Press状态;

S43:在支持触摸处理的图形界面里移动的Move状态:;

S44:松开触摸后,鼠标或者是隐藏的触摸光标仍在支持触摸处理的图形界面内的Release状态;

S45:离开支持触摸处理的图形界面的Leave状态。

S5:根据追踪触摸状态的变化,通过移动检测阈值消除触摸抖动。

S51:设置软件,使得触摸屏存在一个按照固定频率扫描屏幕并检测触摸状态的周期性操作,优选地,每秒扫描5次;

S52:当用户将手指或触摸笔接触屏幕后,系统会不断收到触摸发生的位置和触摸的状态,第一次接触到屏幕的状态是Press,之后系统默认状态为Move;

S53:把每个触摸点经触摸检测扫描产生的触摸位置信息做前相比较,当后一个位置相对于前一个位置没有发生移动检测阈值内的移动时,就认为对应的触摸点没有产生移动的操作,从而将发送的Move状态强制改为Press状态。

S6:结合设置的ID,从而进行触摸分组,实现多点触控的手势识别。

具体地触摸分组的步骤为:

S61:将逐次进入的触摸点,消除抖动后都没有产生移动,则分为一组;

S62:若第一次进入的触摸,超过移动检测阈值,则分为一组;

S63:若后进入的触摸,超出移动检测阈值,则将该触摸与先前一组没有发生移动的触摸归为一组。

具体手势识别过程:S64:如果触摸分组中的一组只存在一个触摸点,则状态机FSM工作在绘制触摸下的某个操作;

S65:如果触摸分组中的一组只存在两个触摸点且先前也没有其他任何触摸点,则将这两个触摸点认定为手势触摸下的拖拽缩放操作;如果触摸分组中的一组只存在两个触摸点且先前存在其他触摸点,因为缩放拖拽操作和其他工作模式互斥,因此忽略这一组操作;

S66:如果触摸分组中的一组存在三个乃至以上的触摸点,则认定是一个手势实现的擦除操作。

实施例2

一种多点触控的防误触方法,首先使用实施例1所述的手势识别方法对多点触控操作进行识别,在精准识别的基础上实现防误触。具体过程为:

一旦同一组的触摸点中存在移动,不仅分组被确定,而且即便这一组的触摸点之后不再超过移动检测阈值,检测程序扫描到的状态都将被强制修改为Press状态,从而确定手势或者是限定有限状态机FSM的工作状态,并在所有手指离开之前不再做变更;一旦有限状态机FSM被限定,则后入的其他触摸行为也会变成有限状态机FSM限定时的工作状态,除非所有手指离开,有限状态机FSM才允许变更状态,从而实现多点触控的防误触。

实施例3

一种通用平台下多点触控的手势识别和防误触系统,基于上述实施例1设计的手势识别方法和上述实施例2设计的防误触方法。首先搭建支持各个操作系统下的通用平台,再基于该平台,开发通用平台下多点触控的手势识别和防误触系统。

具体地,基于Microsoft通用平台框架Xamarin开发支持Android/iOS/Wind ows和国产操作系统下的通用软件;基于.Net Core对各平台进行统一封装,封装支持了每个平台都具备的能力,损失了各自平台独有的特性,其中,.NET Core具有构建现代、可伸缩和高性能的跨平台软件应用程序的优点;若需要支持多平台的通用性,则使用扩展的Xamarin.Essentials,开发各自平台需求支持的独特功能,其中,扩展的Xamarin.Essentials把因为平台差异造成的代码不一致的底层接口重新做了归一,提升了开发效率。

显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号