Kinect for Windows SDK v2.0 开发笔记 (五)骨骼帧与笑面男

本文介绍了如何使用Kinect for Windows SDK v2.0进行骨骼追踪,特别是关注于如何获取和绘制25个骨骼关节,并通过Direct2D实现类似《攻壳机动队 S.A.C》中笑面男的实时打码效果。文章中详细讲解了骨骼数据的获取、关节状态判断以及利用Direct2D 1.1绘制旋转文字和几何形状的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(转载请注明出处)

使用SDK: Kinect for Windows SDK v2.0 public preview

这次说说这骨骼帧的获取。嗯,Kinect买来就为这个啊。不然其他数据,买其他产品就行了,Kinect的卖点也是这个。

先看看这次支持的骨骼关节:

enum _JointType
    {
        JointType_SpineBase	= 0,
        JointType_SpineMid	= 1,
        JointType_Neck	= 2,
        JointType_Head	= 3,
        JointType_ShoulderLeft	= 4,
        JointType_ElbowLeft	= 5,
        JointType_WristLeft	= 6,
        JointType_HandLeft	= 7,
        JointType_ShoulderRight	= 8,
        JointType_ElbowRight	= 9,
        JointType_WristRight	= 10,
        JointType_HandRight	= 11,
        JointType_HipLeft	= 12,
        JointType_KneeLeft	= 13,
        JointType_AnkleLeft	= 14,
        JointType_FootLeft	= 15,
        JointType_HipRight	= 16,
        JointType_KneeRight	= 17,
        JointType_AnkleRight	= 18,
        JointType_FootRight	= 19,
        JointType_SpineShoulder	= 20,
        JointType_HandTipLeft	= 21,
        JointType_ThumbLeft	= 22,
        JointType_HandTipRight	= 23,
        JointType_ThumbRight	= 24,
        JointType_Count	= ( JointType_ThumbRight + 1 ) 
    } ;

支持这25个关节点,不排除会增加的可能,毕竟近景可以分辨十指。

每个关节的状态用这个结构体描述:

typedef struct _Joint
    {
    JointType JointType;
    CameraSpacePoint Position;
    TrackingState TrackingState;
    } 	Joint;

JointType就是之前的关节编号,Position是Kinect的相机空间坐标,是三维的。TrackingState是目前关节的追踪状态,

有: 未追踪(0),位置是推测的(1),位置是追踪的(2)


值得说明的是这次C++的SDK也提供了判断手的状态:

enum _HandState
    {
        HandState_Unknown	= 0,
        HandState_NotTracked	= 1,
        HandState_Open	= 2,
        HandState_Closed	= 3,
        HandState_Lasso	= 4
    } ;

有:未知(0),未追踪(1),摊开(2),握拳(3)以及Lasso(4),Lasso不知道怎么翻译,大概就是处于摊开与握拳之间的状态,

比如:或者甚至这样都能称为Lasso。


使用方法和之前的差不多,说说不同的:

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值