关节速度:Kinect使用FPS不计算时间



i m尝试使用Kinect计算关节速度。我的算法使坐标每30帧执行一次执行,这就是我的做法:

每次Kinect都有一个骨架框架:

public void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
     //*default code to draw skeleton here*
     count++
     if (count == 30){
         //my code to acquire and display coordinates
         count = 0;
     }
 }

从理论上讲,坐标获取的部分应在现实生活中每1秒钟(aproximatty)运行,但这不是正在发生的事情。它比应该更快,但是当我不使用if计数时它不如它运行。

重点是,ID喜欢使用捕获2个接头之间的此时间间隔来计算速度,因为坐标为米。

是(x1- x2)/1的速度。

我知道这是不准确的,但它只是用于测试。

我认为Kinect不会以每秒30帧的速度捕获,它的速度更快?

有什么更简单的方法可以做到这一点?

哦,我使用Visual C#和Kinect SDK

kinect捕获40fps(每秒30帧)。从理论上讲,速度在周期内定义为运动,因此每个关节在1/30秒内都有其自己的位置,因此在每30帧中,您都会在一秒钟内具有运动。如果要以准确的方式计算它,则必须使用一些timer来为您计算此计时而不是counter。如果拥有准确的数据在您的项目中不重要,则可以将关节的所有位置存储在列表或数组中,然后根据列表中的数据开始计算:FYI在f = 0中,ARR [0]具有一定的值,而f = 30中,存储的帧号30的值。因此,通过计算这两个值之间的距离,您可能会发现结果。实际上,我使用这种方法来计算平均步行速度。

最新更新