您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > Kinect-防抖动
SDK自带的平滑算法。调用方法:(以下代码使用的是最新SDK1.5正式版)声明传感器变量KinectSensorsensor;然后窗口的Load事件中我们都要写:this.sensor.SkeletonStream.Enable();此时的函数不接受任何参量,也就是系统不会进行平滑,开启平滑算法的方法就是向Enable()方法中传参声明TransformSmoothParameters变量TransformSmoothParameterssmoothParameters;为平滑算法的参数赋值:smoothParameters.Smoothing=0.5f;//设置处理骨骼数据帧时的平滑量,接受一个0-1的浮点值,值越大,平滑的越多。0表示不进行平滑。//smoothParameters.Correction;//接受一个从0-1的浮点型,值越小,修正越多//smoothParameters.JitterRadius;//抖动半径,单位为m,如果关节点“抖动”超过了设置的这个半径,将会被纠正到这个半径之内//smoothParameters.MaxDeviationRadius;//用来和抖动半径一起来设置抖动半径的最大边界,任何超过这一半径的点都不会认为是抖动产生的,而被认定为是一个新的点。该属性为浮点型,单位为米//smoothParameters.Prediction;//返回用来进行平滑需要的骨骼帧的数目this.sensor.SkeletonStream.Enable(smoothParameters);//开启骨骼流,利用平滑阈值的选取没有什么方法,大家需要根据具体情况调整……这是最囧的一点,我也曾经想过一些平滑算法,但是水平不够,效果也不好平滑的原理就是低通滤波器注意:一定要提前定义一个TransformSmoothParameters变量,然后用这个变量作为Enable()方法的参数;走过的弯路:由于没有定义一个临时的变量TransformSmoothParameterssmoothParameters作为Enable的参数,而是直接对this.sensor.SkeletonStream.SmoothParameters赋值,就会提示错误:无法修改××的返回值,因为它不是变量
本文标题:Kinect-防抖动
链接地址:https://www.777doc.com/doc-7149435 .html