LeapMotion教程之手势识别

上传人:公**** 文档编号:542734059 上传时间:2023-02-12 格式:DOC 页数:10 大小:312KB
返回 下载 相关 举报
LeapMotion教程之手势识别_第1页
第1页 / 共10页
LeapMotion教程之手势识别_第2页
第2页 / 共10页
LeapMotion教程之手势识别_第3页
第3页 / 共10页
LeapMotion教程之手势识别_第4页
第4页 / 共10页
LeapMotion教程之手势识别_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《LeapMotion教程之手势识别》由会员分享,可在线阅读,更多相关《LeapMotion教程之手势识别(10页珍藏版)》请在金锄头文库上搜索。

1、关于LeapMotion的预览概括预览:坐标系统动作捕捉数据帧绑定数据列表帧动画手模型手属性手的动画手指和工具列表手指和工具模型手势画圈划过点击按键类型点击屏幕类型点击3手模型这个手模型提供了被绑定的手的位置信息、特点以及运动方式。并且还包括了手指或者手上的工具的所有和手关联的东西的信息。LeapAPI尽可能多的提供关于手的信息。但是,Leap不能够确定每一帧所有属性。比如当你的手突然攘成了拳头,这个时候,它上面的所有的手指是不能用了,手指的list就成了空。所以你的程序需要对这种情况最一个检测。Leap设备不能确定某一个手是左手还是右手,多于两个手出现都可以放到list里面去,如果不止一个人

2、将手放进来,或者有一个像手的物体。然而还是建议最多两个手来保证动作步骤的质量。3.1Hand类属性Hand对彖提供了几个属性来反映绑定后的手的物理特性:PalmPositionThecenterofthepalmmeasuredinmillimetersfromtheLeaporigin.PlamPosition一一手掌中心到Leap设备原点以亳米测量的距离PalmVelocityThespeedofthepalminmillimeterspersecond.PalmVelocity一一以亳米每秒为单位的手掌移动的速度。PalmNormal个向量,这个向量是垂直于手掌所形成的平面的。并且向量从

3、手掌出来指向下。Direction个向量,从手掌指向手指的方向。Spherecenter适合手弯曲后曲率的一个球的中心(就像用手握住一个球一样)SphereRadiusTheradiusofaspherefittothecurvatureofthehandTheradiuschangeswiththeshapeofthehand.SphereRadius一一适合手弯曲后曲率的一个球的半径,这个半径随着手的形状而变化。direction和PalmNormal是一个单位向量,描述了手相对于Leap设备的坐标系统。PalmNormal向量指向了手掌的垂直向外的方向。Direction向量指向前。我们

4、手握住的时候,就好象有一个球在手里,SphereCenter和SphereRadius就描述了这样一个球的中心和半径,这个球的曲率随着我们的手变化。3.2手的动作Hand对彖也提供了一些属性来反映绑定的手在frames中的动作。Leap设备分析手的动作就像分析手指和工具的并且代表了移动.旋转、缩放等因素。在Leap设备的可视范I制内移动手指表示移动,旋转、弯曲或者倾斜你的手表示旋转,是手指或者工具相对或者相对的移动表示缩放。手的动作是通过比较手在当前frame的属性和较早的frame相比较产生的,手动作的属性包括:RotationAxisAdirectionvectorexpressingth

5、eaxisofrotation.RotationAxis个方向向量来表示旋转的轴RotationAngleTheangleofrotationclockwisearoundtherotationaxis(usingtheright-handrule).RotationAngle一一沿着旋转轴顺时针所转动的角度(使用右手定则)RotationMatrixAtransformmatrixexpressingtherotation.RotationMatrix个表达旋转的变化矩阵ScaleFactorAfactorexpressingexpansionorcontraction.ScaleFacto

6、r个表达收缩或者放大的因素TranslationAvectorexpressingthelinearmovementTranslation个表达线型移动的向量3.3手指和工具列表你可以使用下面三个当中的一个来访问fingers或者tools:PointablesBothfingersandtoolsasPointableobjectsPointablesfinger和tools都是Pointable对象(下面两个继承于它)FingersJustthefingersFingers仅仅是fingersToolsJustthetools.Tools仅仅是tools乐之者体感开发你也可以使用从前一帧获

7、取的ID值来访问fingers或者tools,使用Hand.finger(),Hand.tool()或者如果你不需要区分这两者的话可是使用Hand.pointtable()方法。4.手指和工具的模型在Leap设备可视区域里面可以识别并绑定手指和类似手指的工具。Leap设备将像手指的对象通过形状归为tools。工具对手指来说更长、更瘦、更值。IntheLeapmodel,thephysicalcharacteristicsoffingersandtoolsareabstractedintoaPointableobjectFingersandtoolsaretypesofpointableobje

8、ctsThephysicalcharacteristicsofpointableobjectsinelude:在Leap模型里面。于指或者工具的物理特性被抽象问Pointable对彖。并且fingers和tools是pointable对象类型的。Pointable对象的物理特性包括:LengthThelengthofthevisibleportionoftheobject(fromwhereitextendsoutofthehandtothetip).Length这个可以被看见的物体的长度(从手里陈出来到指尖)WidthTheaveragewidthofthevisibleportionoft

9、heobject.Width可是物体的平均宽度DirectionAunitdirectionvectorpointinginthesamedirectionastheobject(i.e.frombasetotip).Direction个和物体所指的方向一样的单位方向向量TipPositionThepositionofthetipinmillimetersfromtheLeaporigin.TipPosition一一末梢的位置距离Leap设备多少亳米TipVelocityThespeedofthetipinmillimeterspersecond.TipVelocity末梢以亳米每秒的移动速度

10、手指的TipPositionandDirection向量为我们提供了手指末梢的位置和手指所指的方向。Leap设备将所绑定的物体分为手指或者工具。使用Pointable.isTool属性就可以判断这个绑定的物体是手指还是工具了。工具跟手比起来更长、更细、更直。Leap设备作为手势分析某一个运动模式,这个运动模式里面可能包含了用户的想法或者命令。设备响应在frame中观察到的手势和相应手指绑定数据和手是一样的。对于每一个观察到的手势,设备就会在frame中放置一个Grsture对象。你口J以从Framegestures列表中获取这个对彖。以下运动模式能够被Leap所识别。CircleAsingle

11、fingertracingacircleCircle一一单一的手指被或者旋转一周SwipeAlinearmovementofthehandSwipe个手的直线运动点击Leap设备能够分析两种类型的点击:向下的KeyTap和向前的ScreenTapKeyTapAtappingmovementbyafingerasiftappingakeyboardkey.KeyTap种就像点击键盘的点击运动ScreenTapAtappingmovementbythefingerasiftappingaverticalcomputerscreen.ScreenTap种点击运动就像点击一个虚拟的电脑屏幕当Leap设

12、备首先将一个运动模式分类为手势的时候,首先对Frame里面添加了一个Gesture对象。如果这个手势持续到结束时间。Leap就对在随后的Frame里面更新这个Gestures对彖。手势Circle和Swipe是连续的,设备在每一帧都更新手势的进度。点击是分离的手势。设备响应点击是使用了一个单独的Gesture对彖。重要的是:在在你的应用程序使用手势之前,你需要开启每一个你需要用的手势。在Controller类中有一,个方法EnableGesture()你可以使用它来开启你需要用到的手势。Circle画圈设备识别一个手指头画一个圈作为Circle手势。手指画圈动作你可以使用手指或者工具画圈。Ci

13、rlce手势是一个连续性的手势,一旦手势开始,设备就开始更新进度知道手势结束。Circle手势在画完或者背离圆弧轨迹或者画的太慢。滑动设备认为一个手指线性移动是Swipe手势。乐之者体感开发一个水平滑动的手势你可以使用任何一个手指在任何方向上做一个平滑的手势。平滑的手势也是连续性的手势。一旦手势开始,Leap设备就会一直更新这个手势的进度直到结束。一个平滑移动的手势的结束包拾改变了移动方向或者移动的太慢。点击设备识别两种类型的点击:向下点击和向前点击(KeyTap和ScreenTap)键盘点击设备识别一种快速的向下的手指或者工具的移动作为KeyTapo一种KeyTap的点击方式你可以做一个键盘式的点击手势通过把手指像是弹钢琴一样的向下点击。点击是独立的手势,一个Gesture对象只对一次点击手势添加。屏幕点击设备分析手指或者工具的一个快速的向前的点击屏幕的运动为ScreenTapso一种screentap的手势点击效果你可以通过使用手指或者工具向前推进就像点击垂直的屏幕一样做一个ScreenTapoScreenTap也是离散的所以一个点击手势智慧添加一个Gesture对彖。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号