我有两个非常简单的 Kinect for Windows 项目。
一个项目基于名为ControlsBasics-WPF的原始 Kinect for Windows 开发 SDK V2 代码示例(可在 V2 SDK 浏览器中获得),另一个项目是通过新项目从头开始创建的,随后通过 nuget 包管理器引用 Kinect SDK。
这两个项目中的代码相当于以下 XAML。
<kinectTools:KinectRegion x:Name="kinectRegion">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*" />
<RowDefinition Height="8*" />
</Grid.RowDefinitions>
<kinectTools:KinectUserViewer Grid.Row="0" />
</Grid>
</kinectTools:KinectRegion>
和以下 C#
public MainWindow()
{
InitializeComponent();
KinectRegion.SetKinectRegion(this, kinectRegion);
this.kinectRegion.KinectSensor = KinectSensor.GetDefault();
}
如果我运行该项目,预期的行为是一旦抬起手臂(左或右),光标应该出现在定义KinectRegion
区域内的屏幕上。
然而,虽然基于ControlsBasics-WPF示例代码的版本是坚如磐石的,并且几乎可以立即按预期运行(光标出现并跟踪)。基于新项目的版本表现出间歇性行为,光标很少出现在屏幕上。
请找到以下两个可以证明问题的解决方案:
另请注意,我故意从 SDK 代码示例版本中删除了 dll 引用,并使用 nuget 来引用 SDK 以确保引用相同的库并且这不会影响行为。这两个项目中的代码(据我所知)是相同的,但显然我遗漏了一些东西。
任何输入将不胜感激!