CN113986109B - 一种对地图进行手势识别的方法和装置 - Google Patents
一种对地图进行手势识别的方法和装置 Download PDFInfo
- Publication number
- CN113986109B CN113986109B CN202111253861.7A CN202111253861A CN113986109B CN 113986109 B CN113986109 B CN 113986109B CN 202111253861 A CN202111253861 A CN 202111253861A CN 113986109 B CN113986109 B CN 113986109B
- Authority
- CN
- China
- Prior art keywords
- gesture
- touch
- moving
- points
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008859 change Effects 0.000 claims abstract description 55
- 230000033001 locomotion Effects 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005057 finger movement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种对地图进行手势识别的方法和装置,其中,该方法包括:获取触摸点的个数与坐标;若只存在一个触摸移动点,且当前手势识别器的状态为空,确定为拖拽手势;若存在两个触摸移动点,两个触摸移动点的角度变化值超过角度阈值,记录符合的触摸点移动位置点对的数量超过第一数量阈值、手势识别器的状态为空,确定为旋转手势;若未超过角度阈值,且两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、手势识别器的状态为空,确定为缩放手势;若未超过角度阈值,且两个触摸移动点的移动方向同时向上或向下、手势识别器的状态为空,确定为俯仰手势。本申请解决了手势识别精度较低,造成手势误判的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种对地图进行手势识别的方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着互联网及计算机技术的迅速发展,手势操作的识别技术也在不断进步。多点触控(Multi-touch)是一项由用户通过数只手指操作进行应用控制的输入技术,能在没有传统输入设备(如鼠标、键盘等)的情况下快捷、方便地进行人机交互操作。
目前,相关技术一般只能识别一些类似点击、长按、拖动等简单的单点手势,以及以缩放和旋转为主的多点手势操作。而在诸如地图、3D模型、场景动画等实际应用中,经常需要将多种不同的手势交互操作混合使用,如用户需要对地图和建筑等模型进行拖拽、旋转、放缩和俯仰等手势操作以达成其所期望看到的界面效果。其中,俯仰(倾斜)手势是指将视图从2D到3D(或从3D到2D)进行切换过程的操作。此外,相关识别技术的手势识别精度较低,会造成多种手势的误判,严重影响用户体验。
目前,针对相关技术中手势识别精度较低,造成多种手势的误判的问题,尚未提出有效的解决方案。
发明内容
本申请的目的是针对现有技术中的不足,提供一种对地图进行手势识别的方法、装置、计算机设备和计算机可读存储介质,以至少解决相关技术中手势识别精度较低,造成多种手势的误判的问题。
为实现上述目的,本申请采取的技术方案是:
第一方面,本申请实施例提供了一种对地图进行手势识别的方法,包括:
获取触摸点的个数与坐标;
若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;
若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;
若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作;
若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作;
若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作。
在其中一些实施例中,若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,包括:
计算所述一个触摸移动点在上下左右各方向上的移动坐标;
根据所述在上下左右各方向上的移动坐标实现对地图进行拖拽操作。
在其中一些实施例中,若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作,包括:
计算所述两个触摸移动点的旋转方向和旋转角度;
将所述旋转角度转换成弧度值;
根据所述弧度值实现对地图进行旋转操作。
在其中一些实施例中,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作,包括:
计算缩放系数和缩放中心;
根据所述缩放系数和所述缩放中心实现对地图进行缩放操作。
在其中一些实施例中,在确定出所述两个触摸移动点往相反方向移动之后,所述方法还包括:
获取所述两个触摸移动点移动前的距离以及移动后的距离;
若所述移动后的距离大于所述移动前的距离,则确定为放大手势,并对地图进行所述放大手势对应的放大操作;
若所述移动后的距离小于所述移动前的距离,则确定为缩小手势,并对地图进行所述缩小手势对应的缩小操作。
在其中一些实施例中,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作,包括:
计算所述两个触摸移动点的偏移量和俯仰角度;
根据所述偏移量和所述俯仰角度实现对地图进行俯仰操作。
在其中一些实施例中,所述两个触摸移动点的移动方向同时向上或向下的判断过程包括:
首先判断单个手指接触点的移动方向:
当手指放到屏幕上初始位置记录为设触摸点一为A(x1,y1),触摸点二为B(x2,y2),当手指移动时记录初始触摸点对应的移动位置为A′(x′1,y′1),B′(x′2,y′2),单个手指接触点的移动方向的公式为:
横向移动:|(x1-x′1)|>|(y1-y′1)|;
纵向移动:|(x1-x′1)|≤|(y1-y′1)|;
其中:
当判断为横向移动时:如果x1-x′1>0,则是向左移动;如果x1-x′1<0,则是向右移动;
当判断为纵向移动时:如果y1-y′1>0,则是向上移动;如果y1-y′1<0,则是向下移动;
然后判断双指接触点是否是同时向上或者向下移动。
第二方面,本申请实施例提供了一种对地图进行手势识别的装置,包括:
获取单元,用于获取触摸点的个数与坐标;
第一确定单元,用于若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并执行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;
判断单元,用于若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;
第二确定单元,用于若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并执行所述旋转手势对应的旋转操作;
第三确定单元,用于若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并执行所述缩放手势对应的缩放操作;
第四确定单元,用于若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并执行所述俯仰手势对应的俯仰操作。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的方法。
本申请采用以上技术方案,与现有技术相比,本申请实施例提供的对地图进行手势识别的方法,通过获取触摸点的个数与坐标;若只存在一个触摸移动点,且当前手势识别器的状态为空,确定为拖拽手势;若存在两个触摸移动点,两个触摸移动点的角度变化值超过角度阈值,记录符合的触摸点移动位置点对的数量超过第一数量阈值、手势识别器的状态为空,确定为旋转手势;若未超过角度阈值,且两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、手势识别器的状态为空,确定为缩放手势;若未超过角度阈值,且两个触摸移动点的移动方向同时向上或向下、手势识别器的状态为空,确定为俯仰手势,解决了相关技术中手势识别精度较低,造成多种手势的误判的问题,提高了手势识别精度,减少了手势误判情况,提升了用户体验。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的移动终端的结构框图;
图2是根据本申请实施例的对地图进行手势识别的方法的流程图;
图3是根据本申请实施例的拖拽手势操作的示意图;
图4是根据本申请实施例的拖拽手势识别方法的流程图;
图5是根据本申请实施例的旋转手势操作的示意图;
图6是根据本申请实施例的旋转手势识别方法的流程图;
图7是根据本申请实施例的缩放手势操作的示意图;
图8是根据本申请实施例的缩放手势识别方法的流程图;
图9是根据本申请实施例的俯仰手势操作的示意图;
图10是根据本申请实施例的俯仰手势识别方法的流程图;
图11是根据本申请优选实施例的组合手势识别方法的流程图;
图12是根据本申请优选实施例的对地图进行拖拽、旋转、缩放及俯仰组合操作及防误判的系统的示意图;
图13是根据本申请实施例的对地图进行手势识别的装置的结构框图;
图14为根据本申请实施例的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种移动终端。图1是根据本申请实施例的移动终端的结构框图。如图1所示,该移动终端包括:射频(Radio Frequency,简称为RF)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(wireless fidelity,简称为WiFi)模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,简称为LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称为GSM)、通用分组无线服务(GeneralPacket Radio Service,简称为GPRS)、码分多址(Code Division Multiple Access,简称为CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、长期演进(Long Term Evolution,简称为LTE)、电子邮件、短消息服务(Short MessagingService,简称为SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行移动终端的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元130可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种菜单。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(LiquidCrystal Display,简称为LCD)、有机发光二极管(Organic Light-Emitting Diode,简称为OLED)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现移动终端的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现移动终端的输入和输出功能。
移动终端还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在移动终端移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160中的扬声器161,传声器162可提供用户与移动终端之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一移动终端,或者将音频数据输出至存储器120以便进一步处理。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略,或者替换为其他的短距离无线传输模块,例如Zigbee模块、或者WAPI模块等。
处理器180是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
移动终端还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,处理器180被配置为:
获取触摸点的个数与坐标;
若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作;若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作;若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作。
在其中一些实施例中,处理器180还被配置为:计算所述一个触摸移动点在上下左右各方向上的移动坐标;根据所述在上下左右各方向上的移动坐标实现对地图进行拖拽操作。
在其中一些实施例中,处理器180还被配置为:计算所述两个触摸移动点的旋转方向和旋转角度;将所述旋转角度转换成弧度值;根据所述弧度值实现对地图进行旋转操作。
在其中一些实施例中,处理器180还被配置为:计算缩放系数和缩放中心;根据所述缩放系数和所述缩放中心实现对地图进行缩放操作。
在其中一些实施例中,处理器180还被配置为:获取所述两个触摸移动点移动前的距离以及移动后的距离;若所述移动后的距离大于所述移动前的距离,则确定为放大手势,并对地图进行所述放大手势对应的放大操作;若所述移动后的距离小于所述移动前的距离,则确定为缩小手势,并对地图进行所述缩小手势对应的缩小操作。
在其中一些实施例中,处理器180还被配置为:计算所述两个触摸移动点的偏移量和俯仰角度;根据所述偏移量和所述俯仰角度实现对地图进行俯仰操作。
在其中一些实施例中,处理器180还被配置为:
首先判断单个手指接触点的移动方向:
当手指放到屏幕上初始位置记录为设触摸点一为A(x1,y1),触摸点二为B(x2,y2),当手指移动时记录初始触摸点对应的移动位置为A′(x′1,y′1),B′(x′2,y′2),单个手指接触点的移动方向的公式为:
横向移动:|(x1-x′1)|>|(y1-y′1)|;
纵向移动:|(x1-x′1)|≤|(y1-y′1)|;
其中:
当判断为横向移动时:如果x1-x′1>0,则是向左移动;如果x1-x′1<0,则是向右移动;
当判断为纵向移动时:如果y1-y′1>0,则是向上移动;如果y1-y′1<0,则是向下移动;
然后判断双指接触点是否是同时向上或者向下移动。
本实施例提供了一种对地图进行手势识别的方法。图2是根据本申请实施例的对地图进行手势识别的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取触摸点的个数与坐标;
步骤S202,若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;
步骤S203,若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;
步骤S204,若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作;
步骤S205,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作;
步骤S206,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作。
通过上述步骤,解决了相关技术中手势识别精度较低,造成多种手势的误判的问题,提高了手势识别精度,减少了手势误判情况,提升了用户体验。
拖拽手势
如图3所示,拖拽(Drag)操作:单指按在屏幕上朝任意方向移动,地图会跟随移动。
如图4所示,拖拽手势识别方法包括以下步骤:
步骤S401,获取触摸点的个数及坐标;
步骤S402,判断是否只有一个触摸移动点,并且未被识别为其他手势;
步骤S403,若是,则判断为拖拽手势,计算触摸点在上下左右各方向的移动坐标;
步骤S404,调用SDK接口传入上下左右的坐标值,实现对地图做任意方向的拖拽操作。
在其中一些实施例中,若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,包括:
计算所述一个触摸移动点在上下左右各方向上的移动坐标;
根据所述在上下左右各方向上的移动坐标实现对地图进行拖拽操作。
具体过程如下:
1、获取触摸点的个数及坐标
(1)触摸点个数获取:
此处在touchstart事件中获取touches列表长度。
(2)触摸点坐标获取:
监听移动端触摸事件可以得到触摸点坐标,在本地图SDK中,横纵坐标为touch事件中的client.x和client.y。
2、拖拽手势判断及误判处理
满足以下2点,则该手势被判断为拖拽手势。
(1)屏幕上只有一个触摸移动点
根据浏览器touchmove事件中changedTouches数组的长度来判断有几个移动点。对于touchmove事件,changedTouches会列出和上一次事件比较后发生了变化的触点。在touchstart中确定触摸点只有一个,会进入拖拽手势内部逻辑,而当touchmove中移动的点只有一个时,就会触发拖拽事件。
(2)没有被判别为其他手势
使用手势识别器的状态来记录手势操作,如果手势识别器的状态为空,则表示没有被判别为其他手势。
3、计算触摸点在上下左右各方向的移动坐标
不同于普通浏览器(坐标轴为右上角),本地图SDK中规定坐标轴原点为屏幕中心点,所以需要进行坐标转换。此处获取触摸点在地图画布中的位置及方向的逻辑如下:
设触摸点的初始坐标为A(x0,y0),触摸点在移动过程中的当前坐标为A(x,y),触摸点在移动过程中的上一个位置坐标为A′(x′,y′),地图画布为canvas,则:
触摸点在移动过程中的当前坐标A(x,y)距离浏览器左边界的距离moveX=x-canvas.offsetLeft,距离浏览器上边界的距离moveY=y-canvas.offsetTop。其中,canvas.offsetLeft指地图画布左上角相对于浏览器左边界的距离,canvas.offsetTop指地图画布上边相对于浏览器上边界的距离。
触摸点在移动过程中的上一个位置坐标A′(x′,y′)距离浏览器左边界的距离prevX=x′-canvas.offsetLeft,距离浏览器上边界的距离prevY=y′-canvas.offsetTop。
记录好移动点的位置后,对其坐标进行转换:
触摸点当前坐标相对于地图中心点向右移动的距离为:
相对于地图中心点向上移动的距离为:
相对于地图中心点向左移动的距离为:
相对于地图中心点向下移动的距离为:
其中,∈是一个阈值,代表手指移动距离和地图实际移动距离的误差值,范围是0~1,如取∈=0.5。canvas.clientWidth和canvas.clientHeight分别表示地图画布的内部宽度和高度。
4、调用SDK接口
得到以上位置信息后,调用SDK提供的移动接口translate传入上下左右的坐标值,即可实现对地图作任意方向的拖拽效果。
旋转手势
如图5所示,旋转(Rotate)操作:双指同时向不同方向扭转移动即可使地图进行旋转。
如图6所示,旋转手势识别方法包括以下步骤:
步骤S601,获取触摸点的个数及坐标;
步骤S602,判断是否有二个触摸移动点,并且两个触摸移动点角度变化超过角度阈值,并且符合条件的记录点对数量超过数量阈值,并且未被识别为其他手势;
步骤S603,若是,则判断为旋转手势,计算两个触摸点在移动过程中的角度变化;
步骤S604,调用SDK接口传入旋转角度的弧度值,实现对地图的旋转操作。
在其中一些实施例中,若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作,包括:
计算所述两个触摸移动点的旋转方向和旋转角度;
将所述旋转角度转换成弧度值;
根据所述弧度值实现对地图进行旋转操作。
具体过程如下:
1、获取触摸点的个数及坐标
(1)触摸点个数获取:
此处在touchstart事件中获取touches列表长度。
(2)触摸点坐标获取:
监听移动端触摸事件可以得到触摸点坐标,在本地图SDK中,横纵坐标为touch事件中的client.x和client.y。
2、旋转手势判断及误判处理
满足以下4点,则该手势被判断为旋转手势。
(1)屏幕上有二个触摸移动点:
移动时touchmove中变化的点,即changeTouches长度为2(表示同时有两个点在移动)。
(2)两个触摸移动点角度变化超过角度阈值:
首先计算两个触摸移动点的角度变化:
设两个触摸移动点(即触发touchmove的两个点)的初始坐标分别为A(x1,y1)和B(x2,y2),则由此两点建立的向量为:
其模长为:
设点A(x1,y1)移动到了点A′(x3,y3),点B(x2,y2)移动到了点B′(x4,y4),则移动后的向量为:
其模长为:
此时可得这两向量夹角θ的余弦值为:
展开可以得到:
对结果取反三角则可以得到角度θ的值,即:
θ=arccosθ
然后判断两个触摸移动点角度变化是否超过角度阈值:
两个触摸移动点角度变化θ超过阈值(范围为0~90度,可取35度)时,才开始记录点对的数量。
(3)符合条件的记录点对数量超过数量阈值:
考虑人手的自然误差,符合条件的行为记录点对的数量需要达到一定阈值(如:3~10对,可取6对)。
(4)没有被判别为其他手势:
使用手势识别器的状态来记录手势操作,如果手势识别器的状态为空,则表示没有被判别为其他手势。
3、计算旋转方向和旋转角度
(1)根据向量共线定理,算出旋转的方向:
当(x2-x1)*(y4-y3)-(x4-x3)*(y2-y1)>0时,A′B′相对于AB顺时针旋转,保持角度传入。
当(x2-x1)*(y4-y3)-(x4-x3)*(y2-y1)<0时,A′B′相对于AB逆时针旋转,在角度前取负。
当(x2-x1)*(y4-y3)-(x4-x3)*(y2-y1)=0时,A′B′与AB共线
(2)把角度θ转换成弧度值angle为:
4、调用SDK接口
调用SDK接口传入旋转角度的弧度值(顺时针为正值、逆时针为负值),实现对地图的旋转效果。
此外,为了让角度变化更为舒缓,我们可以对计算出的角度进行适当的缩小处理,从而让旋转效果更加自然。
缩放手势
如图7所示,缩放(Zoom)操作:双指同时朝不同且近乎平行的方向进行捏合,即可实现地图的缩小和放大。
如图8所示,缩放手势识别方法包括以下步骤:
步骤S801,获取触摸点的个数及坐标;
步骤S802,判断是否有二个触摸移动点,并且满足方向限制(两个触摸移动点距离在往相反方向慢慢变大或者变小),并且两个触摸移动点角度变化未超过角度阈值,并且符合条件的记录点对数量超过数量阈值,并且未被识别为其他手势;
步骤S803,若是,则判断为缩放手势,计算缩放系数与缩放中心;
步骤S804,调用SDK接口传入缩放系数与缩放中心的坐标,实现对地图的缩放操作。
在其中一些实施例中,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作,包括:
计算缩放系数和缩放中心;
根据所述缩放系数和所述缩放中心实现对地图进行缩放操作。
在其中一些实施例中,在确定出所述两个触摸移动点往相反方向移动之后,所述方法还包括:
获取所述两个触摸移动点移动前的距离以及移动后的距离;
若所述移动后的距离大于所述移动前的距离,则确定为放大手势,并对地图进行所述放大手势对应的放大操作;
若所述移动后的距离小于所述移动前的距离,则确定为缩小手势,并对地图进行所述缩小手势对应的缩小操作。
具体过程如下:
1、获取触摸点的个数及坐标
(1)触摸点个数获取:
此处在touchstart事件中获取touches列表长度。
(2)触摸点坐标获取:
监听移动端触摸事件可以得到触摸点坐标,在本地图SDK中,横纵坐标为touch事件中的client.x和client.y。
2、缩放手势判断及误判处理
满足以下5点,则该手势被判断为缩放手势。
(1)屏幕上有二个触摸移动点:
移动时touchmove中变化的点,即changeTouches长度为2(表示同时有两个点在移动)。
(2)两个触摸移动点角度变化在角度阈值内:
首先计算两个触摸移动点的角度变化:
设两个触摸移动点(即触发touchmove的两个点)的初始坐标分别为A(x1,y1)和B(x2,y2),则由此两点建立的向量为:
其模长为:
设点A(x1,y1)移动到了点A′(x3,y3),点B(x2,y2)移动到了点B′(x4,y4),则移动后的向量为:
其模长为:
此时可得这两向量夹角θ的余弦值为:
展开可以得到:
对结果取反三角则可以得到角度θ的值,即:
θ=arccosθ
然后判断两个触摸移动点角度变化是否在角度阈值内:
两个触摸移动点角度变化θ在阈值内(如:0~35度)。
(3)两个触摸移动点在往相反方向慢慢变大或者变小:
先判断两个触摸移动点是否是在往相反方向移动:
计算向量和向量的方向。
再判断是缩小还是放大:
为两个触摸点在移动前的距离,为两个触摸点在移动后的距离,可以对比移动前后的距离是变大还是变小来判断是缩小还是放大。
(4)符合条件的记录点数量超过数量阈值:
考虑人手的自然误差,符合条件的行为记录点对的数量需要达到一定阈值(如:3~10对,可取6对)。
(5)没有被判别为其他手势:
使用手势识别器的状态来记录手势操作,如果手势识别器的状态为空,则表示没有被判别为其他手势。
3、计算缩放系数和缩放中心
(1)缩放系数
当两指触摸确定为缩放手势之后,每次手指移动,都要传给执行函数一个缩放系数。
这个系数的确定,需要记录每次移动的距离和上一次移动时的距离,两者差值或比值即为计算系数的来源。
(2)缩放中心:
缩放中心是两个移动触摸点连线的中心点(即A′(x3,y3)、B′(x4,y4)两点的中心坐标),设为(vx,vy),则:
4、调用SDK接口
调用SDK接口,传入缩放系数和缩放中心的坐标(vx,vy),实现对地图的缩放效果。
俯仰手势
如图9所示,俯仰(Pitch)操作:双指同时向上或者向下移动会启动俯仰视角切换。
如图10所示,俯仰手势识别方法包括以下步骤:
步骤S1001,获取触摸点的个数及坐标;
步骤S1002,判断是否有二个触摸移动点,并且满足方向限制(两个触摸移动点同时向上或者向下),并且未被识别为其他手势;
步骤S1003,若是,则判断为俯仰手势,计算触摸点的偏移量和俯仰角度;
步骤S1004,调用SDK接口传入俯仰角度,实现对地图的俯仰操作
在其中一些实施例中,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作,包括:
计算所述两个触摸移动点的偏移量和俯仰角度;
根据所述偏移量和所述俯仰角度实现对地图进行俯仰操作。
在其中一些实施例中,所述两个触摸移动点的移动方向同时向上或向下的判断过程包括:
首先判断单个手指接触点的移动方向:
当手指放到屏幕上初始位置记录为设触摸点一为A(x1,y1),触摸点二为B(x2,y2),当手指移动时记录初始触摸点对应的移动位置为A′(x′1,y′1),B′(x′2,y′2),单个手指接触点的移动方向的公式为:
横向移动:|(x1-x′1)|>|(y1-y′1)|;
纵向移动:|(x1-x′1)|≤|(y1-y′1)|;
其中:
当判断为横向移动时:如果x1-x′1>0,则是向左移动;如果x1-x′1<0,则是向右移动;
当判断为纵向移动时:如果y1-y′1<0,则是向上移动;如果y1-y′1<0,则是向下移动;
然后判断双指接触点是否是同时向上或者向下移动。
具体过程如下:
1、获取触摸点的个数及坐标
(1)触摸点个数获取:
此处在touchstart事件中获取touches列表长度。
(2)触摸点坐标获取:
监听移动端触摸事件可以得到触摸点坐标,在本地图SDK中,横纵坐标为touch事件中的client.x和client.y。
2、俯仰手势判断及误判处理
满足以下3点,则该手势被判断为俯仰手势。
(1)屏幕上有二个触摸移动点:
移动时touchmove中变化的点,即changeTouches长度为2(表示同时有两个点在移动)。
(2)二个触摸点的移动方向必须同时向上或者同时向下:
首先判断单个手指接触点的移动方向:
当手指放到屏幕上初始位置记录为设触摸点一为A(x1,y1),触摸点二为B(x2,y2),当手指移动时记录初始触摸点对应的移动位置为A′(x′1,y′1),B′(x′2,y′2)。则判断单个手指横向移动公式为:
横向移动:
|(x1-x′1)|≤|(y1-y′1)|
纵向移动:
|(x1-x′1)|≤|(y1-y′1)|
当判断为横纵向移动后再对移动的具体方向作出判断,其中:
A.当判断为横向移动时:
如果x1-x′1>0,则是向左移动;
如果x1-x′1<0,则是向右移动。
B.当判断为纵向移动时:
如果y1-y′1>0,则是向上移动;
如果y1-y′1<0,则是向下移动。
然后判断双指触摸点是否是同时向上或者向下移动。
(3)没有被判别为其他手势:
使用手势识别器的状态来记录手势操作,如果手势识别器的状态为空,则表示没有被判别为其他手势。
3、计算偏移量和俯仰角度
(1)偏移量:
记录二个接触点其中一个点的实时移动位置,设实时移动点位置为P(x,y),该点前一个位置为P′(x′,y′),设地图画布为canvas,其内容高度为clinetHeight,则偏移量d为:
(2)俯仰角度:
4、调用SDK接口
调用SDK接口,传入偏移量和俯仰角度,实现对地图进行俯仰视角的切换效果。
需要说明的是,本申请实施例根据触摸点的个数、触摸点移动的角度变化是否超过角度阈值、满足与角度阈值关系的触摸点(对)的数量是否超过数量阈值,以及是否被判断为其他手势这些信息来进行手势的误判处理。具体的防误判方法已体现在上述的各种手势判断的方法内,在实现时,本发明使用手势识别器的状态来记录手势操作。
具体的各阈值范围参考上述实例。关于阈值范围的确定,本发明主要通过人工测试的方式决定,此外还可以通过机器学习的方法使用不同模型进行训练和调参得到。
下面通过优选实施例对本申请实施例进行描述和说明。
图11是根据本申请优选实施例的组合手势识别方法的流程图,如图11所示,该方法包括以下步骤:
步骤S1101,初始化手势识别器状态为空;
步骤S1102,获取触摸点的个数和坐标;
步骤S1103,判断是否只有一个触摸点:若是则执行步骤S1104;若否则执行步骤S1108;
步骤S1104,判断手势识别器状态是否为空;若是则执行步骤S1105;若否则执行步骤S1117;
步骤S1105,手势识别器状态置为拖拽手势;
步骤S1106,计算触摸点在上下左右各方向的移动坐标;
步骤S1107,调用SDK接口,传入上下左右的移动坐标,实现拖拽操作;
步骤S1108,判断是否有两个触摸点;若是则执行步骤S1109;若否则执行步骤S1102;
步骤S1109,计算两个触摸点的角度变化;
步骤S1110,判断两个触摸点的角度变化是否超过阈值;若是则执行步骤S1111;若否则执行步骤S1118;
步骤S1111,记录符合的触摸点移动位置点对的数量;
步骤S1112,判断点对的数量是否超过数量阈值;若是则执行步骤S1113;若否则执行步骤S1111;
步骤S1113,判断手势识别器状态是否为空;若是则执行步骤S1114;若否则执行步骤S1117;
步骤S1114,手势识别器状态置为旋转手势;
步骤S1115,计算旋转方向和旋转角度;
步骤S1116,调用SDK接口,传入旋转角度的弧度值,实现旋转操作;
步骤S1117,执行手势识别器的手势;
步骤S1118,判断两个触摸点是否在往相反方向慢慢变大或变小;若是则执行步骤S1119;若否则执行步骤S1125;
步骤S1119,记录符合的触摸点移动位置点对的数量;
步骤S1120,判断点对的数量是否超过数量阈值;若是则执行步骤S1121;若否则执行步骤S1119;
步骤S1121,判断手势识别器状态是否为空;若是则执行步骤S1122;若否则执行步骤S1130;
步骤S1122,手势识别器状态置为缩放手势;
步骤S1123,计算缩放系数和缩放中心;
步骤S1124,调用SDK接口,传入缩放系数和缩放中心,实现缩放操作;
步骤S1125,判断两个触摸点是否同时向上或同时向下移动;若是则执行步骤S1126;若否则执行步骤S1102;
步骤S1126,判断手势识别器状态是否为空;若是则执行步骤S1127;若否则执行步骤S1130;
步骤S1127,手势识别器状态置为俯仰手势;
步骤S1128,计算偏移量和俯仰角度;
步骤S1129,调用SDK接口,传入俯仰角度,实现俯仰操作;
步骤S1130,执行手势识别器的手势。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种对地图进行拖拽、旋转、缩放及俯仰组合操作及防误判的系统,如图12所示,该系统包括:监听模块1201、识别模块1202、计算模块1203。
监听模块1201,用于根据用户在所述触控屏幕上作用的轨迹点,获取接触点信息。并根据识别模块1202的识别结果和计算模块1203的计算结果进行响应操作。
识别模块1202,用于根据获取的接触点信息来判断手势类型(拖拽、旋转、缩放或俯仰操作)。
计算模块1203,用于根据识别模块1202的手势识别结果,进行不同手势的具体数据计算。
在本公开的示例性实施例中,图12示意性示出本公开一示例性实施例中的系统整体模块示意图,以下结合图12对具体的实施方式进行解释。
参考图12,本公开中的手势识别的算法的整体模块图可以包括:监听模块1201、识别模块1202和计算模块1203。其中:
监听模块1201,用于根据用户在所述触控屏幕上作用的轨迹点,获取接触点信息。并根据识别模块1202的识别结果和计算模块1203的计算结果进行响应操作。主要执行以下步骤:
初始化SDK,开始监听。SDK(Software Development Kit,软件开发工具包)是包含特定软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。初始化SDK即把相关变量赋为默认值,把控件设为默认状态,把没准备的准备好,以便后续相关程序可以正常运行;
获取识别结果与计算结果;
响应手势对应的操作,调用SDK接口,传入计算结果,实现对地图进行不同手势操作的效果。
识别模块1202,用于根据获取的接触点信息来判断手势类型(拖拽、旋转、缩放或俯仰操作)。主要执行以下步骤:
获取接触点个数和坐标;
角度变化处理,判断触摸点的角度变化是否超过设定的阈值等;
数量阈值判断,判断符合条件的触摸点(对)的数量是否超过设定的数量阈值;
手势识别器,使用手势识别器的状态来记录手势操作,如果手势识别器的状态为空,则表示没有被判别为其他手势。
计算模块1203,用于根据识别模块1202的手势识别结果,进行不同手势的具体数据计算。主要执行以下步骤:
如果手势识别为拖拽操作,那么计算触摸点在上下左右各方向的移动坐标;
如果手势识别为旋转操作,那么计算旋转方向和旋转角度;
如果手势识别为缩放操作,那么计算缩放系数和缩放中心;
如果手势识别为俯仰操作,那么计算偏移量和俯仰角度。
需要说明的是,上述相关模块的命名和各模块所执行的步骤均可根据实际情况自行设定,术语本公开的保护范围。
本申请中的手势识别的方法及系统能够在多种不同的手势交互操作混合使用时,准确识别拖拽、旋转、缩放和俯仰手势,提高了识别精度;使用误判处理,减少了手势误判情况,提升了用户体验。
本实施例提供了一种对地图进行手势识别的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图13是根据本申请实施例的对地图进行手势识别的装置的结构框图,如图13所示,该装置包括:
获取单元1301,用于获取触摸点的个数与坐标;
第一确定单元1302,用于若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并执行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;
判断单元1303,用于若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;
第二确定单元1304,用于若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并执行所述旋转手势对应的旋转操作;
第三确定单元1305,用于若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并执行所述缩放手势对应的缩放操作;
第四确定单元1306,用于若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并执行所述俯仰手势对应的俯仰操作。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
实施例提供了一种计算机设备。结合本申请实施例对地图进行手势识别的方法可以由计算机设备来实现。图14为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器141以及存储有计算机程序指令的存储器142。
具体地,上述处理器141可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器142可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器142可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器142可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器142可在数据处理装置的内部或外部。在特定实施例中,存储器142是非易失性(Non-Volatile)存储器。在特定实施例中,存储器142包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(ErasableProgrammable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically ErasableProgrammable Read-Only Memory,简称为EEPROM)、电可改写ROM(ElectricallyAlterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-AccessMemory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode DynamicRandom Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDate Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器142可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器141所执行的可能的计算机程序指令。
处理器141通过读取并执行存储器142中存储的计算机程序指令,以实现上述实施例中的任意一种对地图进行手势识别的方法。
在其中一些实施例中,计算机设备还可包括通信接口143和总线140。其中,如图14所示,处理器141、存储器142、通信接口143通过总线140连接并完成相互间的通信。
通信接口143用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口143还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线140包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线140包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线140可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线140可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的对地图进行手势识别的方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种对地图进行手势识别的方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种对地图进行手势识别的方法,其特征在于,包括:
获取触摸点的个数与坐标;
若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;
若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;
若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作;
若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作;
若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作;
其中,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作,包括:
计算所述两个触摸移动点的偏移量和俯仰角度;
根据所述偏移量和所述俯仰角度实现对地图进行俯仰操作;
其中,所述两个触摸移动点的移动方向同时向上或向下的判断过程包括:
首先判断单个手指接触点的移动方向:
当手指放到屏幕上初始位置记录为设触摸点一为A(x1,y1),触摸点二为B(x2,y2),当手指移动时记录初始触摸点对应的移动位置为A′(x′1,y′1),B′(x′2,y′2),单个手指接触点的移动方向的公式为:
横向移动:|(x1-x′1)|≤|(y1-y′1)|;
纵向移动:|(x1-x′1)|≤|(y1-y′1)|;
其中:
当判断为横向移动时:如果x1-x′1>0,则是向左移动;如果x1-x′1<0,则是向右移动;
当判断为纵向移动时:如果y1-y′1>0,则是向上移动;如果y1-y′1<0,则是向下移动;
然后判断双指接触点是否是同时向上或者向下移动。
2.根据权利要求1所述的方法,其特征在于,若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并对地图进行所述拖拽手势对应的拖拽操作,包括:
计算所述一个触摸移动点在上下左右各方向上的移动坐标;
根据所述在上下左右各方向上的移动坐标实现对地图进行拖拽操作。
3.根据权利要求1所述的方法,其特征在于,若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并对地图进行所述旋转手势对应的旋转操作,包括:
计算所述两个触摸移动点的旋转方向和旋转角度;
将所述旋转角度转换成弧度值;
根据所述弧度值实现对地图进行旋转操作。
4.根据权利要求1所述的方法,其特征在于,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并对地图进行所述缩放手势对应的缩放操作,包括:
计算缩放系数和缩放中心;
根据所述缩放系数和所述缩放中心实现对地图进行缩放操作。
5.根据权利要求4所述的方法,其特征在于,在确定出所述两个触摸移动点往相反方向移动之后,所述方法还包括:
获取所述两个触摸移动点移动前的距离以及移动后的距离;
若所述移动后的距离大于所述移动前的距离,则确定为放大手势,并对地图进行所述放大手势对应的放大操作;
若所述移动后的距离小于所述移动前的距离,则确定为缩小手势,并对地图进行所述缩小手势对应的缩小操作。
6.一种对地图进行手势识别的装置,其特征在于,包括:
获取单元,用于获取触摸点的个数与坐标;
第一确定单元,用于若只存在一个触摸移动点,且当前手势识别器的状态为空,则确定为拖拽手势,并执行所述拖拽手势对应的拖拽操作,其中,所述手势识别器的状态用于记录手势操作;
判断单元,用于若存在两个触摸移动点,判断所述两个触摸移动点的角度变化值是否超过角度阈值;
第二确定单元,用于若所述两个触摸移动点的角度变化值超过所述角度阈值,且记录符合的触摸点移动位置点对的数量超过第一数量阈值、所述手势识别器的状态为空,则确定为旋转手势,并执行所述旋转手势对应的旋转操作;
第三确定单元,用于若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点往相反方向移动、记录符合的触摸点移动位置点对的数量超过第二数量阈值、所述手势识别器的状态为空,则确定为缩放手势,并执行所述缩放手势对应的缩放操作;
第四确定单元,用于若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并执行所述俯仰手势对应的俯仰操作;
其中,若所述两个触摸移动点的角度变化值未超过所述角度阈值,且所述两个触摸移动点的移动方向同时向上或向下、所述手势识别器的状态为空,则确定为俯仰手势,并对地图进行所述俯仰手势对应的俯仰操作,包括:
计算所述两个触摸移动点的偏移量和俯仰角度;
根据所述偏移量和所述俯仰角度实现对地图进行俯仰操作;
其中,所述两个触摸移动点的移动方向同时向上或向下的判断过程包括:
首先判断单个手指接触点的移动方向:
当手指放到屏幕上初始位置记录为设触摸点一为A(x1,y1),触摸点二为B(x2,y2),当手指移动时记录初始触摸点对应的移动位置为A′(x′1,y′1),B′(x′2,y′2),单个手指接触点的移动方向的公式为:
横向移动:|(x1-x′1)|≤|(y1-y′1)|;
纵向移动:|(x1-x′1)|≤|(y1-y′1)|;
其中:
当判断为横向移动时:如果x1-x′1>0,则是向左移动;如果x1-x′1<0,则是向右移动;
当判断为纵向移动时:如果y1-y′1>0,则是向上移动;如果y1-y′1<0,则是向下移动;
然后判断双指接触点是否是同时向上或者向下移动。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111253861.7A CN113986109B (zh) | 2021-10-27 | 2021-10-27 | 一种对地图进行手势识别的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111253861.7A CN113986109B (zh) | 2021-10-27 | 2021-10-27 | 一种对地图进行手势识别的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986109A CN113986109A (zh) | 2022-01-28 |
CN113986109B true CN113986109B (zh) | 2024-07-23 |
Family
ID=79742332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111253861.7A Active CN113986109B (zh) | 2021-10-27 | 2021-10-27 | 一种对地图进行手势识别的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986109B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104471518A (zh) * | 2012-07-15 | 2015-03-25 | 苹果公司 | 用于三维交互的多点触摸手势识别的消歧 |
CN112416236A (zh) * | 2020-03-23 | 2021-02-26 | 上海幻电信息科技有限公司 | 基于web页面的手势封装、交互方法、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5845860B2 (ja) * | 2011-12-01 | 2016-01-20 | 株式会社デンソー | 地図表示操作装置 |
US9026951B2 (en) * | 2011-12-21 | 2015-05-05 | Apple Inc. | Device, method, and graphical user interface for selection of views in a three-dimensional map based on gesture inputs |
US10437460B2 (en) * | 2012-06-05 | 2019-10-08 | Apple Inc. | Methods and apparatus for cartographically aware gestures |
CN106980494B (zh) * | 2016-01-19 | 2021-08-03 | 中兴通讯股份有限公司 | 一种实现智能识别缩放手势指令的浏览器的方法及装置 |
US10877660B2 (en) * | 2018-06-03 | 2020-12-29 | Apple Inc. | Devices and methods for processing inputs using gesture recognizers |
-
2021
- 2021-10-27 CN CN202111253861.7A patent/CN113986109B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104471518A (zh) * | 2012-07-15 | 2015-03-25 | 苹果公司 | 用于三维交互的多点触摸手势识别的消歧 |
CN112416236A (zh) * | 2020-03-23 | 2021-02-26 | 上海幻电信息科技有限公司 | 基于web页面的手势封装、交互方法、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113986109A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055879B2 (en) | 3D human face reconstruction method, apparatus and server | |
US10101874B2 (en) | Apparatus and method for controlling user interface to select object within image and image input device | |
US9201521B2 (en) | Storing trace information | |
WO2017088131A1 (zh) | 一种快速分屏的方法、装置、电子设备、显示界面以及存储介质 | |
KR101580914B1 (ko) | 표시된 대상의 줌을 제어하는 전자 기기 및 방법 | |
US20140317555A1 (en) | Apparatus, method, and computer-readable recording medium for displaying shortcut icon window | |
KR102064836B1 (ko) | 모바일 장치에서의 메뉴 표시 장치 및 방법 | |
CN109583271B (zh) | 一种对车道线进行拟合的方法、装置及终端 | |
KR20170089929A (ko) | 비디오 이미지를 스케일링하는 방법 및 이동 단말 | |
CN105518605A (zh) | 一种终端的触摸操作方法及装置 | |
CN110442297B (zh) | 分屏显示方法、分屏显示装置及终端设备 | |
US10019219B2 (en) | Display device for displaying multiple screens and method for controlling the same | |
KR20140026177A (ko) | 스크롤링 제어 방법 및 장치 | |
CN108257208B (zh) | 一种三维图形绘制方法、移动终端 | |
CN111078108A (zh) | 一种屏幕显示方法、装置、存储介质及移动终端 | |
AU2014219279A1 (en) | Handling overloaded gestures | |
CN103677417B (zh) | 一种检测手势的方法、装置及终端设备 | |
CN105930077A (zh) | 屏幕显示对象的尺寸调整方法及装置 | |
CN105700801B (zh) | 一种界面截取方法和设备 | |
CN105513098B (zh) | 一种图像处理的方法和装置 | |
KR102106354B1 (ko) | 전자장치에서 터치 입력을 이용한 동작 제어 방법 및 장치 | |
WO2017075779A1 (zh) | 图像拼接的方法和电子设备 | |
KR20140110646A (ko) | 사용자 단말 및 사용자 단말에서 화면 표시 방법 | |
US10684740B2 (en) | Intervention conditions | |
CN113986109B (zh) | 一种对地图进行手势识别的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |