CN101980107A - 一种基于直线基本手势的手势码的实现方法 - Google Patents

一种基于直线基本手势的手势码的实现方法 Download PDF

Info

Publication number
CN101980107A
CN101980107A CN201010514851XA CN201010514851A CN101980107A CN 101980107 A CN101980107 A CN 101980107A CN 201010514851X A CN201010514851X A CN 201010514851XA CN 201010514851 A CN201010514851 A CN 201010514851A CN 101980107 A CN101980107 A CN 101980107A
Authority
CN
China
Prior art keywords
gesture
basic
value
computing equipment
type
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.)
Pending
Application number
CN201010514851XA
Other languages
English (en)
Inventor
陆钰明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201010514851XA priority Critical patent/CN101980107A/zh
Publication of CN101980107A publication Critical patent/CN101980107A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种基于直线基本手势的手势码的实现方法。本方法通过对输入手势的轨迹进行分析,将其分割并拟合成由一条或者多条呈标准直线的基本手势组成的手势;计算设备将在一定的方向范围内的直线基本手势归为一个类型,从而将所有的基本手势分为一个或者多个类型,并赋予每一类型的基本手势一个固定的值;每一个手势根据组成其的基本手势的类型和组成顺序,通过一定的计算获得该手势的值,以用于后续操作或运算。基于本发明的手势不依赖于手势库,能够通过基本手势衍生出无数种手势,并且任意一个基于本方法的手势都有一个数值与其对应,同时也能够被计算设备和用户直接识别,因而能够广泛的用于基于手势的人机交互。

Description

一种基于直线基本手势的手势码的实现方法
技术领域
本发明涉及用于人机交互的手势识别技术,尤其涉及一种基于直线基本手势的手势码的实现方法。
背景技术
人机交互是计算机技术的一个重要组成部分,它包括通过键盘、鼠标、触摸屏、语音和视频等交互设备。随着计算机技术的发展,特别是触摸屏技术的发展,手势识别技术被广泛的用于人机交互,包括基于鼠标轨迹的鼠标手势,基于触摸屏或触摸板的触摸手势,基于手写笔和手写板的笔画手势,基于视频捕捉技术的视频手势等等。大多数手势识别技术,都需要计算设备预先设置手势,建立手势库,然后将用户输入的手势与手势库进行对比,以确定该手势属于哪种手势。对于任意一个手势,用户和计算设备无法知道其确切的含义。现有的手势及其识别技术存在如下缺陷:
1.手势基于计算设备内建的手势库,手势的数量有限;
2.用户只能按照手势库输入手势,即使能够自定义手势,也必须新建或者更新手势库,以进行手势的识别,对于不属于手势库中的手势,计算设备将无法识别;
3.手势的意义必须依赖于手势库,用户很难直接识别手势,不同用户的自定义手势也难以通用;
4.手势识别的准确度随着手势库的增大迅速降低;
5.对于任意一个手势,计算设备或用户无法保证给出该手势的意义。
这些问题严重的制约了手势在人机交互中的应用。
发明内容
本发明的目的在于,提供一种基于直线基本手势的手势码的实现方法,通过这种方法,其手势能够通过基本手势衍生出无数种手势,对于任意一种基于这种方法的手势,用户和计算设备都能够不依赖于手势库而直接识别并获知其对应的数值,从而克服现有技术中存在的问题。
本发明采用如下技术方案:
一种基于直线基本手势的手势码的实现方法,主要通过以下几个步骤实现:
1)用户向计算设备输入手势;
2)计算设备接收用户输入的手势,并将其分割和拟合为由一条或多条呈标准直线的基本手势组成的手势;
3)计算设备将基本手势分为一个或者多个类型,并且赋予每一个类型的基本手势一个值,根据这种定义,判断已拟合成直线的基本手势属于哪个类型;;
4)计算设备根据组成该手势的基本手势的类型和顺序,计算该手势的值;
5)用户或计算设备根据获得的手势值执行后续操作或程序。
步骤1)所述,众所周知的用于手势输入方法包括利用鼠标、触摸屏、触摸板或者利用手写笔和手写板等设备向计算设备输入手势。本发明要求用户输入的手势尽量由一条或多条趋势呈直线基本手势组成,但不局限于直线,也可以由一条或多条曲线,或者直线加曲线组成。计算设备接受输入后,无论是直线还是曲线,都能够在手势完成后由计算设备记录其轨迹坐标和及其时间点,并通过在步骤2)中给出的方法拟合形成由标准直线基本手势组成的手势。
步骤2)所述,当用户输入手势时,基本手势间的分割从用户角度来说是手势的停顿或者手势前进方向的改变,从本质上来讲是手势的加速度的改变(包括加速度的值和加速度方向),采用数学模拟即为加速度向量的改变。基于这一原理,本发明利用计算设备记录的手势的坐标点(包括位置和记录时的时间),通过分析这些坐标点将手势划分为一个或者多个部分,然后将每一个部分拟合为一条直线,从而将该手势拟合为由一条或多条呈标准直线的基本手势连接组成的手势。具体实现步骤为:
a)计算设备每隔一定时间记录手势的位置坐标,这里的时间间隔根据设备的性能和类型加以设定,比如10毫秒;
b)计算设备以横向(x)和纵向(y)为轴逐个计算这些点的每相邻两点之间的向量,即从前一坐标点指向后一坐标点的向量,形如ax+by;
c)计算每一个向量的横向坐标轴参数值(a)和纵向坐标轴参数(b)的差的绝对值,形如|a-b|;
d)以该绝对值为纵坐标值,以与其对应的时间为横坐标值,通过线性回归逐个计算相邻的多个绝对值的斜率(比如5个),从而获得一系列斜率值;
e)判断斜率值的大小,将连续多个斜率大于零作为基本手势的开始标志,将连续多个斜率小于零作为基本手势的结束标志,根据这一方法将一个手势分割为一个或者多个基本手势(这里的连续多个斜率大于/小于零中的数量根据计算设备的类型和用户所需的识别灵敏度设定,可以是3个、4个、5个或者更多);
f)分别分析分割好的每个基本手势的坐标点,利用最小二乘法或者计算首尾坐标点的直线向量等数学方法将每个基本手势拟合为一条标准直线,从而将该手势拟合为由一条或多条呈标准直线的基本手势组成的手势。
步骤3)所述,计算设备利用本发明将基本手势拟合为标准直线后,每一个基本手势都有一个方向属性值。计算设备将在一定的方向范围内的基本手势归为一个类型。根据方向范围的设定,所有的基本手势可以分为一个或者多个类型,计算设备赋予每一类型的基本手势一个任意的值。
更进一步,为每一个类型的基本手势分别赋予一个从零开始,依次加1递增的自然数。优选的,将所有的基本手势分为4个类型,分别赋予0,1,2,3。
步骤4)所述,每一个手势根据组成其的基本手势的类型和组成顺序,通过一定的计算可以获得该手势的值。这里的计算可以是直接由基本手势的值按顺序组成字符串,也可以通过某种数学运算获得。比如组成某个手势的基本手势的值分别为2、3、1和9,那么采用字符串直接拼接的方法得到的该手势的值为2319,采用数学累加的方法得到该手势的值为15(2+3+1+9)。
更进一步,为了保证手势的值与手势的一一对应关系和方便手势的值的计算,本发明为每一个类型的基本手势分别赋予一个从零开始,依次加1递增的自然数,并且根据一定的数学进制计算手势的值,其中进制数等于基本手势的类型数目,每一个手势在该进制下的值等于将组成该手势的基本手势对应的值按顺序从高位到低位书写的值。优选的,将所有的基本手势分为4个类型,分别赋予0,1,2和3,计算手势时以四进制计算。比如某个手势经分割拟合后由5个基本手势组成,与其类型相对应的值按先后顺序分别为2、0、1,0和3,那么该手势在4进制下的值即为20103。通过这种方法,每一个手势都有一个唯一的数值与其对应;同时可以判断,而对于任意一个数值,经进制转换后都可以用一个手势将其描述。
步骤5)所述,计算设备一般以二进制进行运算,当计算设备获取该手势值后,通过进制转换将其转换为二进制以进行后续程序运算;人通常以十进制进行计算和分析,当用户直接读取该手势值或通过计算设备获得该手势值后,可以转换为十进制以进行后续分析或操作。
显而易见的,用户在一次操作中可以输入多个手势,分别用上述步骤计算其手势值。另外一方面,本方法也可以逆向执行,即对于任意一个数值或者字符(串),将其转换为该手势对应的进制后,根据基本手势的定义可以直接将该手势画出。
本发明具有如下几个优点:
a)基于该方法的手势可以通过基本手势衍生出无限多种;
b)基于该方法的手势不依赖于手势库,能够直接被计算设备识别,且识别程序简单、高效、准确;
c)基于该方法的手势能够直接被用户识别,用户根据手势的轨迹,能够直接读取该手势的值;
d)对于任意一个基于该方法的手势,都有唯一的一个值与其对应;
e)对于任意一个字符(串)或者数值,都有基于该方法的手势与其对应;
基于本发明的手势,能够与现有的数值、代码建立广泛的对应关系,也同时能够被计算设备和用户直接识别,同时现有的文字代码经转换到该手势对应的数学进制下后,能够直接被计算设备和用户转换为其对应的手势,从而实现一种“手势码”的功能。
附图说明
图1为基于本发明的手势实施示例流程图;
图2为手势的分割和拟合的示例流程图;
图3为用户输入的手势示例及拟合成直线基本手势后的示意图;
图4为根据方向范围将基本手势分类的示意图,其中图4A分成3个类型,图4B分成4个类型;
图5为基于4个类型基本手势的手势示例及其用四进制计算的手势值;
图6为将字符转换为手势的示例示意图,其中字符“Love”通过ASCII码转换成数值后转成四进制,然后按优选方案的基本手势定义转换为手势;
图7为基于本发明的一个具体实例程序流程图;
图8为基于本发明的一个具体实例程序执行结果,图8A为程序执行界面和执行结果,图8B为该程序执行过程示意图。
具体实施方式
本发明旨在提供一种基于直线基本手势的手势码的实现方法,如图1A,其实施步骤简要概括如下:
1)用户向计算设备输入由一条或多条趋势呈直线的基本手势组成手势,如图1B步骤101,用户输入一个“心”型手势;
2)计算设备接收用户输入的手势,利用计算程序(图2)将其拟合为由一条或多条呈标准直线的基本手势组成的手势,如图1B步骤102,计算设备将步骤101中的“心”形手势拟合为由a、b、c和d四条直线组成的手势;
3)计算设备根据基本手势的方向,将在一定方向范围内的基本手势归为一个类型,所有的基本手势根据方向范围分为一个或者多个类型,赋予每一个类型的基本手势一个值,根据这种定义,判断已拟合成直线的基本手势属于哪个类型,如图4B步骤103所示,基本手势分为4个类型,分别赋予0,1,2和3,a,b,c和d四个基本手势分别属于类型I、II、II和III;
4)计算设备根据组成该手势的基本手势的类型和组成顺序,计算该手势的值,如图4B步骤104所示,计算手势值时可以直接按基本手势的值按顺序组成字符串,也可以以四进制组成数值;
5)用户或计算设备根据获得的手势值执行后续操作或程序。
下面对实施方式作详细说明。
手势的输入
在本发明的应用中,用户可以利用鼠标、触摸屏、触摸板或者利用手写笔和手写板等设备向计算设备输入手势。众所周知的可以适用本发明的计算系统、环境和/或配置的例子包括但不局限于:个人计算机、服务型计算机、手持或膝上型设备、图形输入板设备、可编程消费者设备等。
本发明要求用户输入的手势尽量由一条或多条趋势呈直线的基本手势组成,例如在图3A中,该手势由3条大致呈直线的基本手势组成。但是本发明不局限于直线,也可以由一条或多条曲线,或者直线加曲线组成。例如图3B,该“心”形手势由多条呈直线或曲线的基本手势组成。计算设备接受输入后,无论是直线还是曲线,都能够由计算设备记录其轨迹坐标点和时间点并通过本发明给出的程序拟合成由标准直线基本手势组成的手势(图3)。因为本发明不依赖于手势库,对于用户输入的任意手势,通过下述方法都可以将其分割和拟合,从而获得该手势的值。因此,基于本发明的手势可以有无数多种,用户输入的手势可以是任意的。
手势的分割和拟合
对于用户输入的手势,基本手势间的分割从用户角度来说是用户输入手势时的停顿或者手势前进方向的改变,从本质上来讲是手势输入时加速度的改变(包括加速度的值和加速度方向),采用数学模拟即为加速度向量的改变。本发明基于这一原理,利用计算设备记录的手势的坐标点(包括位置和记录的时间点),通过对这些坐标点做基于向量的分析,通过程序计算将手势划分为一个或者多个部分,然后将每一个部分拟合为一条直线,从而将该手势拟合为由一条或多条呈标准直线的基本手势组成的手势。如图2所示,其具体实现步骤如下:
a)计算设备每隔一定时间记录手势的位置坐标,这里的时间间隔根据设备的性能和类型加以设定(步骤201);
b)计算设备以横向(x)和纵向(y)为轴逐个计算这些点的每相邻两点之间的向量,即从前一坐标点指向后一坐标点的向量,形如ax+by;
c)计算每一个向量的横向坐标轴参数值(a)和纵向坐标轴参数(b)的差的绝对值,形如|a-b|(步骤202);
d)以该绝对值为纵坐标值,以对应的时间为横坐标值,通过线性回归逐个计算相邻的多个绝对值的斜率(比如相邻的5个绝对值),从而获得一系列斜率值(步骤203);
e)如步骤204所示,判断斜率值的大小,将连续多个斜率值大于零作为基本手势的开始标志,将连续多个斜率值小于零作为基本手势的结束标志,据这一方法将一个手势划分为一个或者多个基本手势(这里的连续多个斜率大于/小于零中的数量根据计算设备的类型和用户所需的识别灵敏度设定,可以是3个、4个、5个或者更多);
f)分别分析分割好的每个基本手势的点的坐标,利用最小二乘法或者计算首尾两点的直线向量等数学方法将每个基本手势拟合为一条标准直线,从而将该手势拟合为由一条或多条呈标准直线的基本手势连接组成的手势(步骤205)。
如图1B所示,步骤101输入中输入的手势经过分割和拟合,形成如步骤102中的由a、b、c和d四条直线基本手势组成的手势。利用上述方法,步骤101中输入的手势的基本手势间的过渡部分被舍去,而基本手势被拟合为标准直线,从而形成如步骤102所示的手势图。
基本手势类型的判断
拟合后的基本手势作为一条直线,具有方向性。计算设备将在一定的方向范围内的基本手势归为一个类型,根据这种方向范围的设定,所有的基本手势可以分为一个或者多个类型,计算设备赋予每一类型的基本手势一个任意的值。如图4A所示,将所有的基本手势分为3个类型,0-120度方向范围内为类型I,赋予值a;120-240度方向范围内为类型II,赋予值b;240-360度方向范围内为类型III,赋予值8。
更进一步的,为了方便计算和识别,为每一个类型的基本手势分别赋予一个从零开始,依次加1递增的自然数。优选的,将基本手势分为4个类型,分别赋予0,1,2和3,如图4B所示。
用户输入的手势经分割和拟合后,形成由一条或多条呈标准直线的基本手势组成的手势。根据基本手势的方向,分别判断这些基本手势在哪个方向范围内,属于哪个类型。例如图1B步骤103所示,基本手势分为4个类型,该手势经分割拟合后的基本手势a、b、c和d分别属于类型I、II、II和III。
手势值的计算
每一个手势根据组成其的基本手势的类型和组成顺序,通过一定的计算可以获得该手势的值。这里的计算可以是直接由基本手势的值按顺序组成字符串,也可以通过某种数学运算获得。比如组成某个手势的基本手势的值分别为2、3、1和9,那么采用字符串直接拼接的方法得到的该手势的值为2319,采用数学累加的方法得到该手势的值为15(2+3+1+9)。
更进一步的,为了保证手势的值与手势的一一对应关系和方便手势的值的计算,本发明为每一个类型的基本手势分别赋予一个从零开始,依次加1递增的自然数,并且根据一定的数学进制计算手势的值,其中进制数等于基本手势的类型数目,每一个手势在该进制下的值等于将组成该手势的基本手势对应的值按顺序从高位到低位书写的值。优选的,将基本手势分为4个类型,分别赋予0,1,2和3,计算手势值时以四进制计算。如图5所示,这4个手势在该计算方法下的手势值分别是21,212,2123,21230。可以判断,通过这种方法,对于计算设备,每一个手势都有一个唯一的数值与其对应。
手势码的翻译
基于本发明的任意手势都有与其对应的值,即每一个手势具有一个手势值,我们将具有这种特性的手势定义为手势码。计算设备一般以二进制进行运算,当计算设备获取手势值后,可以通过进制转换将其转换为二进制以进行后续程序运算;人通常以十进制进行计算和分析,当用户直接读取或通过计算设备获得该手势值后,可以转换为十进制以进行后续分析或操作。例如如图1B,该“心”形手势所对应的四进制值为112,转换为十进制后的值为22。
另外一方面,对于现有的语言文字、数字等符号,都有数值与其对应,将其转换到某个手势码对应的进制下后,根据基本手势的定义,可以转换为手势。优选的,如图4B所示,将基本手势分为4个类型,分别赋予0,1,2和3,将符号转换为四进制后,计算设备或用户可以依次从高位到低位划出其所对应的手势。如图6所示,英文单词“Love”对应的ASCII码分别为76、111、118和101,转换为4进制后为1030、1233、1312和1211。根据基本手势的定义(在90度扇形区内,向上为0,向右为1,向下为2,向左为3,如图4B),可以直接划如图6的对应手势。
实施例
下面进一步结合具体的实施范例,对本发明作详细说明,但本发明的实施方式不限于此。
本实施例以个人电脑触摸板或鼠标为手势输入设备,以火狐浏览器(产品版本3.6.10)为实施平台,计算程序用JavaScript编写。
在本实施例中,基本手势分为4个类型,分别赋予0,1,2和3,如图4B。
具体实施步骤流程图如图7所示,分为以下几步:
1.计算设备在鼠标按下后或者手指点击触摸板后,每隔10毫秒记录鼠标滑动或者手指在触摸板上滑动的轨迹,将记录下的坐标数据写入数组Points,在松开鼠标或者手指离开触摸板后停止记录(步骤701);
2.如步骤702所示,计算Points中每相邻两点间的向量ax+by(其中x为横坐标,y为纵坐标),并计算a和b的差的绝对值|a-b|,写入数组Dtns,例如A,B两点的坐标分别为(100,125)和(150,225),那么A到B的向量为50x+100y,|a-b|=50;
3.以该绝对值为纵坐标值,以对应的时间为横坐标值,用最小二乘法计算Dtns中每相邻5个点的斜率值,写入数组Trend(步骤703);
4.如步骤704所示,逐个判断斜率值的大小,将连续3斜率值大于零作为基本手势的开始标志,将连续3斜率值小于零作为基本手势的结束标志,分别记录这些点对应的时间点并写入数组Section;
5.如步骤705所示,根据数组Section,将该手势分割为多个部分,计算每一个部分中开始点到结束点的向量ax+by,通过计算b和a的比值得到每个基本手势的方向,从而判断其属于哪个类型,然后以四进制记录该手势的值Result。
6.将该手势的四进制值转换成十进制。
在本实施例中,根据本发明提供的方法,用JavaScript编写相关计算程序(见附录A),并在火狐浏览器中执行。图8A为在该配置环境和程序中进行的一次手势输入及其运算结果,图中801为用户的输入的手势,802为计算设备记录的该手势的轨迹,803为用本方法计算后该手势在四进制下的值。如图8B所示,用户输入的“五角星”形手势经分割拟合后形成由5条基本手势组成的手势(步骤804),在步骤805中对这些基本手势进行类型判断,其值分别为1、2、0、2和3,用四进制记录该手势的值即为:12023。
虽然在这里结合附图和具体实例对本发明进行了具体的描述,但应指出,各种变化和修改对本领域技术人员来说都是显而易见的。这些变化和修改都被本发明权利要求所要求保护的范围所涵盖。
附录A:示例性手势计算程序
<body>
<script language=″javascript″>
Points=new Array()://定义坐标点数组
function mouseMove(ev){
          document.getElementByld(′rtx′).innerHTML=ev.clientX:
          document.getElementByld(′rty′).innerHTML=ev.clientY;}
//获取坐标点并写入数组Points
function getPoints(){Points.push(Array(document.getElementByld(′rtx′).innerHTML,
document.getElementByld(′rty′).innerHTML)):}
//用最小二乘法计算相邻多个点的斜率,并写入数组Trend
function TrendArray(){
          var Dnts=new Array(0,0,0,0,0),i=0,Trend=new Array():
          Trend=[0]:
          for(i=0:i<(Points.length-1);i++)
Dnts.push(Math.abs((Points[i+1][0]-Points[i][0])-(Points[i+1][1]Points[i][1])));
          for(i=0;i<(Dnts.length-5);i++)
Trend.push(Trend[i]+(2*Dnts[i+5]-Dnts[i+4]-Dnts[i+3]-Dnts[i+2]-Dnts[i+1]+2*Dnts[i])):
          Trend.push(0,0,0);
          return Trend:
}
//根据数组Section分割手势
function SectionArray(Trend,Addup){
          var Incr=0,Decr=0,Separator=0,Section=new Array():
          for(var i=0;i<Trend.length;i++){
                     if(Trend[i]>0){
                                Incr++:
                                if(Incr==1)Separator=i;
                                else if(Incr==Addup){Section.push(Separator):Decr=0;}
                                else if(Incr>Addup)Decr=0;
                     }
                     else{
                                Decr++;
                                if(Decr==1)Separator=i;
                                else if(Decr==Addup){if(Section.length>0)Section.push(Separator);
Incr=0;}
                                else if(Incr>Addup)Incr=0;
                     }
         }
         return Section;
}
//将分割后的手势拟合为直线,并计算手势在四进制下的值
function gestureCalculate(Section){
          var Result=0,a=0,b=0,val=0:
        for(var i=0;i<Section.length;i=i+2){
                    a=Points[Section[i+1]][0]-Points[Section[i]][0];
                    b=Points[Section[i+1]][1]-Points[Section[i]][1];
                    if(Math.abs(b/a)>1){if(b>0)val=2;else val=0;}
                    else{if(a>0)val=1;else val=3;}
                    Result=Result*10+val;
        }
        return Result;
}
//显示坐标点和运算结果
function gestureVal(){
        clearlnterval(ilntervalld);
        document.getElementByld(′pos′).innerHTML=Points.join(′′);
        document.getElementByld(′res′).innerHTML=
gestureCalculate(SectionArray(TrendArray(),3));
}
document.onmousemove=mouseMove;
//每个10毫秒记录手势的位置
document.onmousedown=function(){PointsJength=0;ilntervalld=setlnterval(getPoints,10);};
document.onmouseup=gestureVal;
</script>
<style type=″text/css″>body{font-family:Arial,Helvetica,sans-serif;font-size:10p×;}.status{float:right;
width:272px;height:592px;border:#666666thin dashed;padding:5p×;}</style>
<div style=″font-family:Arial,Helvetica,sans-serif;font-size:10px;float:right;
width:272px;border:#666666thin dashed;padding:5px;″>
<div>鼠标位置[<span id=rtx></span>,<span id=rty></span>]</div>
<div><h2>手势轨迹</h2><p id=pos></p></div>
<div><h2>手势值:<span id=res></span></h2></div></div>
</body>

Claims (10)

1.一种基于直线基本手势的手势码的实现方法,包括:
a)用户向计算设备输入手势;以及
b)计算设备接收用户输入的手势,并通过分割和拟合,将每一个手势拟合为由一条或多条呈直线的基本手势组成的手势;以及
c)计算设备将基本手势分为一个或者多个类型,并且赋予每一个类型的基本手势一个值,根据这种定义,判断已拟合成直线的基本手势属于哪个类型;以及
d)计算设备根据组成该手势的基本手势的类型和顺序,计算该手势的值;以及
e)用户或计算设备根据获得的手势值执行后续操作或程序。
2.根据权利要求1所述的方法,其特征在于,用户用手指向触摸屏或触摸板输入手势,或者用户用手写笔向触摸屏或手写板输入手势,或者用户用鼠标向计算设备输入手势。
3.根据权利要求1所述的方法,其特征在于,用户输入的手势由一条或多条趋势呈直线的基本手势组成。
4.根据权利要求1所述的方法,其特征在于,计算设备将在一定方向范围内的基本手势归为一个类型,并且根据这些方向范围的设定将基本手势划分为一个或者多个类型。
5.根据权利要求1所述的方法,其特征在于,计算设备为每一个类型的基本手势分别赋予一个从零开始,依次加1递增的自然数。
6.根据权利要求1所述的方法,其特征在于,计算设备将基本手势分为4个类型,分别赋值0,1,2和3。
7.根据权利要求1所述的方法,其特征在于,通过下述步骤将手势分割和拟合:
a)计算设备每隔一定时间记录手势的位置坐标和时间点;以及
b)计算设备以横向和纵向为轴,逐个计算这些点的每相邻两点之间的向量,逐个计算每一个向量的横向坐标轴参数值和纵向坐标轴参数的差的绝对值;以及
c)以该绝对值为纵坐标值,以对应的时间为横坐标值,通过线性回归逐个计算相邻的多个绝对值的斜率,从而获得一系列斜率值;以及
d)判断斜率值的大小,将连续多个斜率大于零作为基本手势的开始标志,将连续多个斜率小于零作为基本手势的结束标志,根据这一方法将一个手势分割为一个或者多个基本手势;以及
e)分别分析分割好的每个基本手势的坐标点,利用最小二乘法或者计算首尾坐标点的直线向量等数学方法将每个基本手势拟合为一条标准直线,从而将该手势拟合为由一条或多条呈标准直线的基本手势组成的手势。
8.根据权利要求1所述的方法,其特征在于,计算设备根据一定的数学进制计算手势的值,其中进制数等于基本手势的类型数目,每一个手势在该进制下的值等于将组成该手势的基本手势对应的值按顺序从高位到低位书写的值。
9.根据权利要求1所述的方法,其特征在于,计算设备获得手势值后将其转换为其他进制的数值或者与其相对应的字符,以进行后续操作或运算。
10.根据权利要求1所述的方法,用户在一次操作中输入多个手势,分别计算其手势值。
CN201010514851XA 2010-10-20 2010-10-20 一种基于直线基本手势的手势码的实现方法 Pending CN101980107A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010514851XA CN101980107A (zh) 2010-10-20 2010-10-20 一种基于直线基本手势的手势码的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010514851XA CN101980107A (zh) 2010-10-20 2010-10-20 一种基于直线基本手势的手势码的实现方法

Publications (1)

Publication Number Publication Date
CN101980107A true CN101980107A (zh) 2011-02-23

Family

ID=43600616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010514851XA Pending CN101980107A (zh) 2010-10-20 2010-10-20 一种基于直线基本手势的手势码的实现方法

Country Status (1)

Country Link
CN (1) CN101980107A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324422A (zh) * 2012-03-21 2013-09-25 宇龙计算机通信科技(深圳)有限公司 终端和轨迹修正方法
CN103455135A (zh) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 控制被控设备的控制方法、系统
CN103677417A (zh) * 2013-12-12 2014-03-26 小米科技有限责任公司 一种检测手势的方法、装置及终端设备
CN103713730A (zh) * 2012-09-29 2014-04-09 炬才微电子(深圳)有限公司 应用于智能终端的空中手势识别方法及装置
WO2015135336A1 (en) * 2014-03-11 2015-09-17 Qualcomm Incorporated Systems and methods for improved touch sensor linearity
CN109992093A (zh) * 2017-12-29 2019-07-09 博世汽车部件(苏州)有限公司 一种手势比较方法以及手势比较系统
WO2019233216A1 (zh) * 2018-06-07 2019-12-12 腾讯科技(深圳)有限公司 一种手势动作的识别方法、装置以及设备
CN110781479A (zh) * 2013-11-05 2020-02-11 谷歌有限责任公司 用于电子设备的方向性触摸解锁

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324422A (zh) * 2012-03-21 2013-09-25 宇龙计算机通信科技(深圳)有限公司 终端和轨迹修正方法
CN103455135A (zh) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 控制被控设备的控制方法、系统
CN103713730B (zh) * 2012-09-29 2018-03-20 炬才微电子(深圳)有限公司 应用于智能终端的空中手势识别方法及装置
CN103713730A (zh) * 2012-09-29 2014-04-09 炬才微电子(深圳)有限公司 应用于智能终端的空中手势识别方法及装置
CN110781479A (zh) * 2013-11-05 2020-02-11 谷歌有限责任公司 用于电子设备的方向性触摸解锁
CN110781479B (zh) * 2013-11-05 2021-02-26 谷歌有限责任公司 用于电子设备的方向性触摸解锁
CN103677417B (zh) * 2013-12-12 2016-08-17 小米科技有限责任公司 一种检测手势的方法、装置及终端设备
CN103677417A (zh) * 2013-12-12 2014-03-26 小米科技有限责任公司 一种检测手势的方法、装置及终端设备
WO2015135336A1 (en) * 2014-03-11 2015-09-17 Qualcomm Incorporated Systems and methods for improved touch sensor linearity
CN109992093A (zh) * 2017-12-29 2019-07-09 博世汽车部件(苏州)有限公司 一种手势比较方法以及手势比较系统
CN109992093B (zh) * 2017-12-29 2024-05-03 博世汽车部件(苏州)有限公司 一种手势比较方法以及手势比较系统
WO2019233216A1 (zh) * 2018-06-07 2019-12-12 腾讯科技(深圳)有限公司 一种手势动作的识别方法、装置以及设备
US11366528B2 (en) 2018-06-07 2022-06-21 Tencent Technology (Shenzhen) Company Limited Gesture movement recognition method, apparatus, and device

Similar Documents

Publication Publication Date Title
CN101980107A (zh) 一种基于直线基本手势的手势码的实现方法
Markussen et al. Vulture: a mid-air word-gesture keyboard
AU737039B2 (en) Methods and apparatuses for handwriting recognition
KR101825154B1 (ko) 중첩 쓰기 핸드라이팅 입력방법
CN100445937C (zh) 笔迹轨线识别系统和方法
CN102024151B (zh) 手势动作识别模型的训练方法和手势动作识别方法
CN102854982A (zh) 一种识别自定义手势轨迹的方法
CN109344793A (zh) 用于识别空中手写的方法、装置、设备以及计算机可读存储介质
Magrofuoco et al. Two-dimensional stroke gesture recognition: A survey
CN112507806B (zh) 智慧课堂信息交互方法、装置及电子设备
JP6301736B2 (ja) 電子機器及び方法
JP7486131B2 (ja) フリーハンドライティングモードでの手書きテキスト入力の処理
US20120317509A1 (en) Interactive wysiwyg control of mathematical and statistical plots and representational graphics for analysis and data visualization
CN102750552B (zh) 一种手写识别方法、系统及手写识别终端
CN109710066B (zh) 基于手势识别的交互方法、装置、存储介质和电子设备
CN102063620A (zh) 一种手写识别方法、系统及手写识别终端
KR20180097618A (ko) 디지털 잉크를 뷰티파잉하기 위한 시스템 및 방법
CN103902098A (zh) 整形装置和整形方法
CN103455262A (zh) 一种基于移动计算平台的笔式交互方法及系统
CN113673432A (zh) 手写识别方法、触摸显示设备、计算机设备及存储介质
CN104933408A (zh) 手势识别的方法及系统
CN103713845A (zh) 筛选候选项的方法和装置、文字输入方法和输入法系统
CN110309726A (zh) 一种微手势识别方法
CN101393606B (zh) 一种基于可视化的手写笔迹鉴定方法
US20070011117A1 (en) Training with heterogeneous data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110223