kinect sdk开发入门WPFdemo笔记

    随着2012年2月1号Kinect For Windows SDK v1版本的发布,将会有更多的人投身于Kinect for Windows的开发,本人利用官方提供的开发视频进行编写的第一个WPF demo。步骤如下:

    1.

kinect sdk开发入门WPFdemo笔记

    2.

kinect sdk开发入门WPFdemo笔记

     3.

kinect sdk开发入门WPFdemo笔记

     4.

kinect sdk开发入门WPFdemo笔记

     5.

kinect sdk开发入门WPFdemo笔记

    6.

kinect sdk开发入门WPFdemo笔记

     7.

kinect sdk开发入门WPFdemo笔记

     8.

kinect sdk开发入门WPFdemo笔记

      9.

kinect sdk开发入门WPFdemo笔记

      10.

 

kinect sdk开发入门WPFdemo笔记

    11.

 

kinect sdk开发入门WPFdemo笔记

     12.

kinect sdk开发入门WPFdemo笔记

       13.MainWindow.xaml内容:

<Window x:Class="KinectSdkDemo.MainWindow"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
Title
="MainWindow" Height="350" Width="769" Loaded="Window_Loaded" Closing="Window_Closing" xmlns:my="clr-namespace:Microsoft.Samples.Kinect.WpfViewers;assembly=Microsoft.Samples.Kinect.WpfViewers">
<Grid Height="381">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="354*" />
<ColumnDefinition Width="393*" />
</Grid.ColumnDefinitions>
<my:KinectSensorChooser HorizontalAlignment="Left" Margin="330,123,0,0" Name="kinectSensorChooser1" VerticalAlignment="Top" Width="328" Grid.ColumnSpan="2" />
<Image Height="240" HorizontalAlignment="Left" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="320" />
<my:KinectColorViewer HorizontalAlignment="Right" Name="kinectColorViewer1" VerticalAlignment="Top" Height="240" Width="320" Kinect="{Binding ElementName=kinectSensorChooser1, Path=Kinect}" Grid.Column="1" />
</Grid>
</Window>

      14.后台代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Kinect;

namespace KinectSdkDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

// KinectSensor _sensor;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
kinectSensorChooser1.KinectSensorChanged
+= new DependencyPropertyChangedEventHandler(kinectSensorChooser1_KinectSensorChanged);
//if (KinectSensor.KinectSensors.Count > 0)
//{
// _sensor = KinectSensor.KinectSensors[0];
//}
//if (_sensor.Status == KinectStatus.Connected)
//{
// _sensor.ColorStream.Enable();
// _sensor.DepthStream.Enable();
// _sensor.SkeletonStream.Enable();
// _sensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(_sensor_AllFramesReady);
// _sensor.Start();
//}

}

void _sensor_AllFramesReady(object sender, AllFramesReadyEventArgs e)
{
/*throw new NotImplementedException();*/
//using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
//{
// if (colorFrame == null)
// {
// return;
// }

// byte[] pixels = new byte[colorFrame.PixelDataLength];
// colorFrame.CopyPixelDataTo(pixels);

// int stride = colorFrame.Width * 4;
// image1.Source =
// BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96
// , PixelFormats.Bgr32, null, pixels, stride);

//}
}

void StopKinect(KinectSensor sensor)
{
if (sensor != null)
{
sensor.Stop();
sensor.AudioSource.Stop();
}
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
StopKinect(kinectSensorChooser1.Kinect);
}

void kinectSensorChooser1_KinectSensorChanged(object sender, DependencyPropertyChangedEventArgs e)
{
KinectSensor oldSensor = (KinectSensor)e.OldValue;
StopKinect(oldSensor);

KinectSensor newSensor = (KinectSensor)e.NewValue;
newSensor.ColorStream.Enable();
newSensor.DepthStream.Enable();
newSensor.SkeletonStream.Enable();
// newSensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(_sensor_AllFramesReady);
try
{
newSensor.Start();
}
catch (System.IO.IOException)
{
kinectSensorChooser1.AppConflictOccurred();
}

}
}
}

     15.运行结果忽略.


转载于:https://www.cnblogs.com/yemeishu/archive/2012/02/02/2336171.html