0

画面の解像度に基づいて、スケルトンの手の位置ポインター (たとえば、アプリケーションで描画した楕円) を変換する方法を知りたいです。たとえば、ユーザーが両手を最大に広げた場合、ハンド ポインターは画面の左端と右端に到達する必要があります。私も次の方法で試しました。しかし、スケルトン ポイントから深度へのコンバーターは、最大 640*480 の解像度で変換されるようです。

private Point SkeletonPointToScreen(SkeletonPoint skelpoint)
{
    DepthImagePoint depthPoint = this.sensorChooser.Kinect.MapSkeletonPointToDepth(skelpoint,DepthImageFormat.Resolution640x480Fps30);     return new Point(depthPoint.X, depthPoint.Y);
}  

このため、1366*768 解像度の画面の左右の端に私の手のポイントが届きません。

誰かがkinect sdk1.5を使用して解決するのを手伝ってくれますか?.

4

1 に答える 1

0

これにより、プライマリ ディスプレイの解像度が得られます。

SystemParameters.PrimaryScreenWidth;
SystemParameters.PrimaryScreenHeight;

その後、それに基づいて手の位置を正規化できます。たとえば、アプリケーションの 1 つで次のことを行います。

double xScaled = (rightHand.Position.X - leftShoulder.Position.Y) / ((rightShoulder.Position.X) * 2) * SystemParameters.PrimaryScreenWidth;
double yScaled = (rightHand.Position.Y - rightShoulder.Position.Y) / (rightHip.Position.Y - rightShoulder.Position.Y) * SystemParameters.PrimaryScreenHeight;

これにより、手の動きのバウンディング ボックスが得られます。右手が左肩に来ると、画面の左側に到達します。画面右側は右肩から身幅分出ています。画面の上/下がそれぞれ肩と腰です。

于 2012-10-11T15:40:40.670 に答える