0

Wpf で 2 つの Image オブジェクトをオーバーレイする方法を知りたいです。ビデオを出力する 2 つのストリームを作成しました。1 つはボーン用で、もう 1 つは通常のビデオです。これらを一緒に追加して、スケルトンがカラー ビデオに表示されるようにします。私のXAMLコードの一部は

<Grid Name="layoutGrid">
    <Grid Name="VideoGrid" ClipToBounds="True" Background="AliceBlue">
        <Image Name="ColorImage" Width="640" Height="480"/>
        <Image Name="SkeletalImage" Width="640" Height="480"/>

        <Canvas Background="Transparent"/>
    </Grid>
    <StatusBar VerticalAlignment="Bottom" HorizontalAlignment="Center">
        <Button Name="Button1" Content="Skeleton Only" Width="120"/>
    </StatusBar>
</Grid>

これを行うと、スケルタル画像のみが表示され、両方の画像を切り替えるとカラー画像が表示されます。キャンバスの背景はうまくいかないようです(骨格画像の黒い部分を透明にするため)

4

3 に答える 3

0

キャンバスの色や深さに Skeletal を重ねてみましたが、うまくいきませんでした。代わりに、SDK 1.6.0 の Kinect Explorer サンプル アプリケーションを見ると、それらはグリッドを使用してオーバーレイされています。残念ながら、私はまだそれほど多くを学んでいませんが、彼らは色と深さのためにグリッドを使用し、骨格追跡のためにキャンバスを使用しました. 役立つ場合は、スニペットを投稿できます。幸運を!

于 2013-10-27T20:49:42.577 に答える
0

あなたは基本的に2つの異なる質問をしています.

質問への回答 1) スケルタル ストリーム内のジョイントの XYZ ベクトルは、深度ストリームと同じ座標系にあります。したがって、Kinect SDK の深度カメラの焦点距離を使用して深度ストリームを 2 次メッシュとしてプロットすると、同じ座標系でスケルトンをライン プロットとしてプロットできます。OpenGL でやりたいことを正確に実装するソース コードは、ここで入手できます。これにより、これを wpf で実装する方法がわかります。

質問 2 への回答) ビデオ カメラは、深度カメラとは異なる視野を持っています。スケルトン ストリームを ColorStream に表示するには、最初にスケルトン ストリーム内のジョイントの XYZ ベクトルを深度ストリームの座標系にマッピングし、最初に背景にビデオ フレームを描画し、スケルトンをライン プロットとして描画する必要があります。フロント。Kinect SDK によって提供される UV テクスチャ座標を使用して、マッピングを簡単に行うことができます。ここで UV を取得する方法を参照してください。

于 2013-10-27T23:25:14.610 に答える