跟踪模式
光标模式:返回代表手部位置的一个位置点,用于及时准确地跟踪手部位置和基础手势。
全手跟踪模式:返回指定的骨骼信息。关节信息、手指数据、手侧、开放性、手势。
末端跟踪模式:返回整个手的位置。
当需要访问指定的骨骼信息时,可以使用全手跟踪模式;当只需要访问整个手的位置时,可以使用末端跟踪模式
当需要及时准确地获取手部位置时,可以使用光标模式。
当跟踪关节启用时,可以获取22个关节中任意一个的位置和其旋转数据。此外可以启用关节的速度计算。
分割图像:一个分割的图像把跟踪的手从他的背景中区分出来。
骨骼校准:校准随着时间的推移持续完善和改进。一旦手被检测到,跟踪就开始了。
骨骼的标准化:一个标准化的骨架是一个具有固定尺寸且关节之间距离也固定的骨架。
(1) 应用演示手的动画
(2) 编写自己的手势识别算法
7、稳定:忽略的手部动作或抖动。
8、平滑:忽略手部小的动作偏差,并克服了跟踪的局部最优问题
配置警报
配置手势
可以调用以下函数来配置手势:
1. EnableGestture:启用指定手势识别。
2. Enableallgesture或allgesture:启用所有手势识别
3. SubscribeGesture:利用回调机制,注册一个手势处理程序处理所有手势事件。
4. LoadGesturePack:保留,以支持未来的附加姿态包。
访问手动跟踪数据
图像坐标。2D系统,单位像素。
世界坐标。3D系统,单位为米。
JoinData(关节数据)结构包含positionImage和positionWorld属性。
手势数据由IHand接口表示。这些信息包括手的位置、姿势、关节等。
可以通过一下两种类型的标识符来访问手部数据:
1) 手部ID。每个识别的手被分配一个唯一的数字ID,他在整个会话中
2) 按序索引。
访问手的ID和时间戳
访问图像数据
如果图像分割已启用,可以获取手的分割图像。
Ihand对象包含用于获取图像相关数据的以下方法:
1) hassegmentationImage:若分割数据存在,返回真;否则返回假。
2) querysegmetationImage:返回分割数据
访问手部位置数据:
手部位置数据并不要求全手跟踪,在末端跟踪模式下也可获得
Ihand对象包含下列方法来获取手部位置数据。
1) queryboundingboxiamge或boundingboximage:返回跟踪手的位置和尺寸。由2D边界框表示(以像素为单位)表示。
2) queryMasscenterImage或massCenterImage:返回图像空间中手的2D质心
3) queryMASSCenterWord:返回在世界空间中手的3D质心(以米为单位)
4) queryExtremityPoint:返回指定手部末端点
访问手势跟踪状态
QueryTrackingStatus函数返回一个位掩模
只有在全手跟踪模式下,手势跟踪状态才是有意义的。
访问手势和手侧
Ihand包含以下手势和手侧数据的方法。
手侧和手势信息只有在全手跟踪的模式下才可以获得。
1) querybodyside:返回属于身体的哪一侧
2) queryPalmOrentation:返回手掌全局3D方向的四元数。
3) querypalmradiusImage:以像素为单位返回手掌图像的大致位置
4) querypalmRadiusworld:以米为单位返回手掌图像的大致半径。
访问手指数据
Quryfingerdata:返回手指“折叠性”的值和指尖半径。
Icontour类包含了与手轮廓线有关的项目。可以使用querycontour函数访问轮廓线上的点。
1) 轮廓数:识别出的外部和内部轮廓线总数。
2) 轮廓大小:轮廓线上点的数目。
3) 轮廓点:轮廓点数组。
4) 内外部标志:具体轮廓线是否为内部或外部。
关节数据只有在全手模式下才能获得。
Ihand对象包含用于获取关节相关数据的下列方法
1 iscalibrate:
2 hastrackedJoints
3 queryTrackedJoint:获取指定关节的跟踪数据。
4 HasNormalizedJoints:
5 QueryNormalizedJoint:返回标准骨架中一个关节的跟踪数据
关节数据属性
Confidence
positionWord
positonImage
LocalRotation
globalOrietation
speed
局部和全局关节旋转
处理警报
处理手势
手势指的是具体手部动作或姿势。在应用程序的特定阶段仅启用相关手势,而不是在任何时候都启用所有的手势。
可以在主处理循环中轮询手势;或者当手势被触发时,利用回调函数调用已注册的手势处理程序。
用户可以选择输入装置、手势跟踪模式和工作模式(直播模式、重放模式和记录模式)