代码注释之kinect数据流对象操作

代码来源介绍

作者:   yangecnuyangecnu's Blog on 博客园
出处:http://www.cnblogs.com/yangecnu/
作品yangecnu创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言

  private KinectSensor kinect;

        public KinectSensor Kinect
        {
            get { return this.kinect; }
            set
            {
                //如果带赋值的传感器和目前的不一样
                if (this.kinect != value)
                {
                    //如果当前的传感对象不为null
                    if (this.kinect != null)
                    {
                        //反初始化传感器数据流对象
                        UninitializeKinectSensor(this.kinect);
                        //uninitailize当前对象
                        this.kinect = null;
                    }
                    //如果传入的对象不为空,且状态为连接状态
                    if (value != null && value.Status == KinectStatus.Connected)
                    {
                        this.kinect = value;
                        //初始化传感器数据流对象
                        InitializeKinectSensor(this.kinect);
                    }
                }
            }
        }

 

//传感器数据流对象初始化函数
        private void InitializeKinectSensor(KinectSensor kinectSensor)
        {
            if (kinectSensor != null)
            {
                //让ColorStream对象可用
                kinectSensor.ColorStream.Enable();
                //当有新的数据帧可用时,触发kinectSensor_ColorFrameReady函数对数据进行处理输出
                kinectSensor.ColorFrameReady += new EventHandler<ColorImageFrameReadyEventArgs>(kinectSensor_ColorFrameReady);
                //打开传感器,新数据帧达到时,就会触发frameready事件,该事件每秒触发30次
                kinectSensor.Start();
            }
        }
        //传感器数据流对象反初始化函数
        private void UninitializeKinectSensor(KinectSensor kinectSensor)
        {
            if (kinectSensor != null)
            {
                //停止传感器
                kinectSensor.Stop();
                //撤销处理函数??
                kinectSensor.ColorFrameReady -= new EventHandler<ColorImageFrameReadyEventArgs>(kinectSensor_ColorFrameReady);
            }
        }
        //处理数据流函数
        void kinectSensor_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)
        {
            using (ColorImageFrame frame = e.OpenColorImageFrame())
            {
                if (frame != null)
                {
                    //数据流对象的PixelDataLength属性返回数据和序列的具体大小
                    byte[] pixelData = new byte[frame.PixelDataLength];
                    //填充像素数据到byte数组pixelData
                    frame.CopyPixelDataTo(pixelData);
                    ColorImageElement.Source = BitmapImage.Create(frame.Width, frame.Height, 96, 96,
                                                                 PixelFormats.Bgr32, null, pixelData,
                                                                 frame.Width * frame.BytesPerPixel);

                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 可以通过将 Kinect 传感器连接到一个计算机,然后在该计算机上启动 Kinect Studio,将 Kinect Studio 配置为允许网络数据流,并使用另一台计算机上的应用程序来访问数据流来实现在两台电脑之间共享 Kinect 数据。另外,您还可以将 Kinect 传感器连接到一个计算机,并使用该计算机上的应用程序将 Kinect 数据发送到另一台计算机,实现在两台电脑之间共享 Kinect 数据。 ### 回答2: Kinect是一款由微软公司开发的体感控制器,可以通过基于摄像头和深度传感器的技术,实现人体动作的检测和跟踪。如果要将Kinect数据输入连接到两台电脑上,可以采用以下几种方法: 1. 使用USB分线器:可以将Kinect的USB接口通过分线器分成两个接口,分别连接到两台电脑上。这样,两台电脑都可以接收到Kinect传输的数据,实现数据的共享和分析。 2. 使用网络连接:如果两台电脑在同一本地网络下,可以将Kinect连接到其中一台电脑上,然后通过网络共享功能,将Kinect传输的数据共享给另一台电脑。这样,两台电脑都可以通过网络接收到Kinect的数据。 3. 使用Kinect SDK开发软件:如果需要在两台电脑上实现对Kinect数据的处理和分析,可以使用Kinect SDK来开发相应的软件。通过在每台电脑上安装相应的软件和驱动程序,可以实现对Kinect数据的接收和处理。 总之,要将Kinect数据输入连接到两台电脑,可以通过USB分线器、网络连接或使用Kinect SDK开发相应的软件来实现数据的共享和分析。具体的方法可以根据实际需求和条件选择合适的方式。 ### 回答3: 要将Kinect数据输入连接两台电脑,有几种不同的方法可以选择。 第一种方法是使用Kinect传感器适配器。该适配器可以将Kinect传感器连接到电脑的USB接口上。如果两台电脑都有可用的USB接口,只需要将适配器插入其中一台电脑,然后将Kinect传感器连接到适配器上。在这种情况下,传感器将被识别为一个外部设备,可以通过USB连接与两台电脑进行数据传输。 第二种方法是使用网络连接。如果两台电脑都位于同一局域网内,可以使用网络连接的方式传输Kinect数据。首先,将Kinect传感器连接到一台电脑上,并安装相应的驱动程序。然后,在这台电脑上运行一个数据传输服务器程序,将Kinect数据发送到局域网上指定的地址和端口。在另一台电脑上,运行一个数据接收客户端程序,接收从服务器传输过来的Kinect数据。 第三种方法是使用专门的数据共享设备。有一些专门的设备可以用于将Kinect数据实时共享到多台电脑上。这些设备通常具有多个视频输入和输出接口,可以同时连接多台电脑并进行数据传输。在此方法中,Kinect传感器将连接到共享设备上,并通过该设备将数据同时发送到两台电脑。 无论采用哪种方法,要成功连接两台电脑并传输Kinect数据,必须确保每台电脑都安装了适当的驱动程序和相关的软件,并进行必要的网络设置。此外,还需要了解和熟悉Kinect数据的传输和处理方法,以便正确地使用数据进行相关的应用和开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值