2
我試圖建立一個邏輯承認這是由用戶的右手做了一個圈,我得到了代碼繪製從示例代碼骨架和跟蹤,如何查找關節座標(X,Y,Z),以及如何繪製跟蹤關節的軌跡?
private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
Skeleton[] skeletons = new Skeleton[0];
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
if (skeletonFrame != null)
{
skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
skeletonFrame.CopySkeletonDataTo(skeletons);
}
}
using (DrawingContext dc = this.drawingGroup.Open())
{
// Draw a transparent background to set the render size
dc.DrawRectangle(Brushes.Black, null, new Rect(0.0, 0.0, RenderWidth, RenderHeight));
if (skeletons.Length != 0)
{
foreach (Skeleton skel in skeletons)
{
RenderClippedEdges(skel, dc);
if (skel.TrackingState == SkeletonTrackingState.Tracked)
{
this.DrawBonesAndJoints(skel, dc);
}
else if (skel.TrackingState == SkeletonTrackingState.PositionOnly)
{
dc.DrawEllipse(
this.centerPointBrush,
null,
this.SkeletonPointToScreen(skel.Position),
BodyCenterThickness,
BodyCenterThickness);
}
}
}
// prevent drawing outside of our render area
this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight));
}
}
我想現在要做的是跟蹤用戶的座標右手手勢識別,
這是我如何我打算把工作做好:
- 開始手勢
- 畫出圓圈的手勢,確保存儲起始座標,然後從頭開始每記錄45度的座標,8個八分圓,我們將得到8個樣本。
- 爲了決定是否繪製圓,我們可以檢查八個樣本之間的關係。
此外,在深度圖像中,我想要顯示繪製手勢的軌跡,因此手形點移動時會留下跟蹤,所以最終我們會得到一個由用戶繪製的圖形。我不知道如何做到這一點。
目前還不清楚你在問什麼。你有沒有嘗試過你在上面闡述的邏輯? –
嗨,我想獲得右手關節的座標。到目前爲止,我已經能夠獲得右手的(X,Y,Z)座標。對於我的問題的第二部分,我需要顯示右手關節運動的軌跡(路徑),所以如果我們正在查看骨架視圖,並且用戶繪製了一個圓圈手勢,然後我們將在骨架視圖中看到右手接頭所遵循的路徑。我希望我的問題很明確:/讓我知道如果它仍然沒有。 –
您是如何檢測手勢的開始?檢測結束會更容易,當你有最後一個_n_點的記錄時,你可以插入一個圓圈...... – Rook