• Kinect上半身模式


    如果应用程序只需要捕捉上半身动作,就可以采用半身模式(Seated Mode),只捕捉上半身的10个骨骼点,可以解决用户在椅子上无法被识别的问题,代码如下绿色底纹,放在开启数据流中。

    private KinectSensor kinectDevice;
    
    private KinectSensor KinectDevice
            {
                get { return kinectDevice; }
                set
                {
                    if (kinectDevice != value)
                    {
                        //未初始化
                        if (kinectDevice != null)
                        {
                            kinectDevice.Stop();
                            kinectDevice.SkeletonFrameReady -= KinectDevice_SkeletonFrameReady;
                            kinectDevice.SkeletonStream.Disable();
    
                            kinectDevice.DepthFrameReady -= this.KinectSensorOnDepthFrameReady;
                            kinectDevice.ColorStream.Disable();
                            //this.interactionStream.InteractionFrameReady -= this.InteractionFrameReady;
                            //this.interactionStream.Dispose();
                            frameSkeletons = null;
                        }
                        kinectDevice = value;
                        //初始化
                        if (kinectDevice != null)
                        {
                            if (kinectDevice.Status == KinectStatus.Connected)
                            {
                                kinectDevice.SkeletonStream.Enable();
                                frameSkeletons = new Skeleton[kinectDevice.SkeletonStream.FrameSkeletonArrayLength];
                                kinectDevice.ColorFrameReady += DeviceColorFrameReady;
                                kinectDevice.ColorStream.Enable();
                                //开启深度流数据  
                                kinectDevice.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                                //开启骨骼流数据  
                                kinectDevice.SkeletonStream.Enable();
                                //设置深度数据读取委托实例  
                                kinectDevice.DepthFrameReady += kinectSensor_DepthFrameReady;
                                //设置骨骼数据读取委托实例  
                                kinectDevice.SkeletonFrameReady += kinectSensor_SkeletonFrameReady;
                                //实例化交互端  
                                ic = new InteractionClient();
                                //实例化交互流  
                                its = new InteractionStream(kinectDevice, ic);
                                //设置交互数据读取委托实例  
                                its.InteractionFrameReady += its_InteractionFrameReady;
                                //this.interactionStream = new InteractionStream(kinectDevice, kinectAdapter);
                                //this.interactionStream.InteractionFrameReady += this.InteractionFrameReady;
                                //kinectDevice.DepthFrameReady += this.KinectSensorOnDepthFrameReady;
                                kinectDevice.DepthStream.Enable();
                                kinectDevice.SkeletonFrameReady += KinectDevice_SkeletonFrameReady;
                                //上半身模式
                                kinectDevice.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated; 
                                //开启Kinect,读取数据 
                                kinectDevice.Start();
                            }
                        }
                    }
                }
            }

     这是寒江独钓的Kinect for Windows SDK开发入门(十六) 面部追踪上

  • 相关阅读:
    个人项目-数独
    个人作业-Week1
    第0次软工作业
    路飞学城Python-Day79
    路飞学城Python-Day78
    路飞学城Python-Day77
    路飞学城Python-Day75
    【前端】CSS隐藏元素的方法和区别
    路飞学城Python-Day59(第五模块复习题)
    jquery 的ready() 与window.onload()的区别
  • 原文地址:https://www.cnblogs.com/bkycjj/p/3542307.html
Copyright © 2020-2023  润新知