|
@@ -142,10 +142,10 @@ namespace bbiwarg.Detectors.Palm
|
|
|
return new Point(HelperFunctions.thresholdRange<int>(0, width - 1, pos.IntX), HelperFunctions.thresholdRange<int>(0, height - 1, pos.IntY));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ public OutputImage i1, i2, i3, i4, i5, i6, i7, i8, i9;
|
|
|
private void buildPointingHandMask()
|
|
|
{
|
|
|
-
|
|
|
+ i1 = new OutputImage(width, height);
|
|
|
i2 = new OutputImage(width, height);
|
|
|
i3 = new OutputImage(width, height);
|
|
|
i4 = new OutputImage(width, height);
|
|
@@ -153,22 +153,22 @@ namespace bbiwarg.Detectors.Palm
|
|
|
i6 = new OutputImage(width, height);
|
|
|
i7 = new OutputImage(width, height);
|
|
|
i8 = new OutputImage(width, height);
|
|
|
- i9 = new OutputImage(width, height);*/
|
|
|
+ i9 = new OutputImage(width, height);
|
|
|
|
|
|
pointingHandMask = new Image<Gray, byte>(width, height, new Gray(0));
|
|
|
|
|
|
|
|
|
pointingHandMask = pointingHandMask.Or(edgeImage.Image.ThresholdBinary(new Gray(0), new Gray(1)));
|
|
|
-
|
|
|
+ i1.Image[0] = i1.Image[1] = i1.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
pointingHandMask = pointingHandMask.Dilate(4);
|
|
|
-
|
|
|
+ i2.Image[0] = i2.Image[1] = i2.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
fillFingerSlices(pointingHandMask, 1);
|
|
|
-
|
|
|
+ i3.Image[0] = i3.Image[1] = i3.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
|
|
|
-
|
|
|
+ i4.Image[0] = i4.Image[1] = i4.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
MCvConnectedComp tmp = new MCvConnectedComp();
|
|
|
|
|
@@ -176,19 +176,19 @@ namespace bbiwarg.Detectors.Palm
|
|
|
|
|
|
|
|
|
pointingHandMask = pointingHandMask.ThresholdBinaryInv(new Gray(1), new Gray(1));
|
|
|
-
|
|
|
+ i5.Image[0] = i5.Image[1] = i5.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
pointingHandMask = pointingHandMask.Erode(8);
|
|
|
-
|
|
|
+ i6.Image[0] = i6.Image[1] = i6.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
fillFingerSlices(pointingHandMask, 0);
|
|
|
-
|
|
|
+ i7.Image[0] = i7.Image[1] = i7.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
pointingHandMask = pointingHandMask.Erode(2);
|
|
|
-
|
|
|
+ i8.Image[0] = i8.Image[1] = i8.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
|
|
|
-
|
|
|
+ i9.Image[0] = i9.Image[1] = i9.Image[2] = 255 * handImage.And(pointingHandMask);
|
|
|
}
|
|
|
|
|
|
private void findLongestPalmContour()
|