|
@@ -12,11 +12,20 @@ namespace bbiwarg.Detectors.HandDetection
|
|
{
|
|
{
|
|
class Hand
|
|
class Hand
|
|
{
|
|
{
|
|
|
|
+ public enum HandSide
|
|
|
|
+ {
|
|
|
|
+ Left,
|
|
|
|
+ Right
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Vector2D Centroid { private set; get; }
|
|
|
|
+ public HandSide Side { get; set; }
|
|
public Image<Gray, byte> Mask { get; private set; }
|
|
public Image<Gray, byte> Mask { get; private set; }
|
|
public List<Finger> Fingers { get; private set; }
|
|
public List<Finger> Fingers { get; private set; }
|
|
|
|
|
|
public Hand(Image<Gray, byte> mask) {
|
|
public Hand(Image<Gray, byte> mask) {
|
|
Mask = mask;
|
|
Mask = mask;
|
|
|
|
+ Centroid = getCentroid();
|
|
Fingers = new List<Finger>();
|
|
Fingers = new List<Finger>();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -27,5 +36,11 @@ namespace bbiwarg.Detectors.HandDetection
|
|
public void addFinger(Finger finger) {
|
|
public void addFinger(Finger finger) {
|
|
Fingers.Add(finger);
|
|
Fingers.Add(finger);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private Vector2D getCentroid()
|
|
|
|
+ {
|
|
|
|
+ MCvPoint2D64f gravityCenter = Mask.GetMoments(true).GravityCenter;
|
|
|
|
+ return new Vector2D((float)gravityCenter.x, (float)gravityCenter.y);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|