0

Windows プロジェクト用の 2 つの非常に単純な Kinect があります。

1 つのプロジェクトは、 ControlsBasics-WPF (V2 SDK ブラウザーで利用可能)というタイトルの元の Kinect for Windows 開発 SDK V2 コード サンプルに基づいており、別のプロジェクトは新しいプロジェクトを介してゼロから作成され、その後 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サンプル コードに基づくバージョンは堅実であり、(カーソルが表示されて追跡される) ほぼすぐに期待どおりに動作します。新しいプロジェクトに基づくバージョンでは、画面上にカーソルが表示されることがほとんどないという断続的な動作が見られます。

問題を示す次の 2 つの解決策を見つけてください。

  1. ワーキングディテクション
  2. 壊れた検出

また、SDK コード サンプル バージョンから dll 参照を意図的に削除し、nuget を使用して SDK を参照して、同じライブラリが参照されていることを確認しましたが、これは動作に影響しませんでした。2 つのプロジェクト内のコードは (私が知る限り) 同じですが、明らかに何かが欠けています。

ご意見をお寄せください。

4

1 に答える 1

0

Kinect 対応の WPF プログラムを作成するために必要なものは次のとおりです。

1- 新しい WPF プログラムを作成します。2- 参照 "Microsoft.Kinect" & "Microsoft.Kinect.Wpf.Controls" を追加します。3- この行を xaml ページの Window オブジェクトに追加します。xmlns:k="http://schemas.microsoft.com/kinect/2014"

最後に、kinect 領域オブジェクトを作成し、その中にボタンを追加します。何かのようなもの:

{

<k:KinectRegion x:Name="kinectRegion">
<Grid>
<Button Content="sdfsdfdsfsdfsdf" Background="#FF2F55A6" BorderThickness="6"  Width="150" Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
</k:KinectRegion>

}

プロジェクトを実行すると、ハンド カーソルが表示され、作成したばかりのボタンを押すことができるはずです。すべて 1 つの xaml ページのみ。これはこれと同じように見えます:

<Window x:Class="KinectDynamicAppLive.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:k="http://schemas.microsoft.com/kinect/2014"
        Title="MainWindow" Height="350" Width="525">
    <k:KinectRegion x:Name="kinectRegion">
    <Grid>
            <Button Content="sdfsdfdsfsdfsdf" Background="#FF2F55A6" BorderThickness="6"  Width="150" Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

        </Grid>
      </k:KinectRegion>
</Window>
于 2015-04-07T07:50:00.253 に答える