You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
using Microsoft.Kinect;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace KinectUtils
|
|
{
|
|
public abstract class Gesture : BaseGesture
|
|
{
|
|
public bool IsRecognitionRunning { get; set; }
|
|
|
|
protected int MinNbOfFrames = 10; // Exemple de valeur, ajustez selon le geste
|
|
protected int MaxNbOfFrames = 50; // Exemple de valeur, ajustez selon le geste
|
|
private int currentFrameCount = 0;
|
|
|
|
public override void TestGesture(Body body)
|
|
{
|
|
if (!IsRecognitionRunning)
|
|
{
|
|
if (TestInitialConditions(body))
|
|
{
|
|
IsRecognitionRunning = true;
|
|
currentFrameCount = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
currentFrameCount++;
|
|
|
|
if (!TestPosture(body) || !TestRunningGesture(body) || currentFrameCount > MaxNbOfFrames)
|
|
{
|
|
IsRecognitionRunning = false;
|
|
}
|
|
else if (TestEndConditions(body) && currentFrameCount >= MinNbOfFrames)
|
|
{
|
|
OnGestureRecognized(body);
|
|
IsRecognitionRunning = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
abstract protected bool TestInitialConditions(Body body);
|
|
abstract protected bool TestPosture(Body body);
|
|
abstract protected bool TestRunningGesture(Body body);
|
|
abstract protected bool TestEndConditions(Body body);
|
|
}
|
|
}
|
|
|