|
@@ -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;
|
|
|
+ public OutputImage i1, i2, i3, i4, i5, i6, i7, i8, i9;
|
|
|
private void buildPointingHandMask()
|
|
|
{
|
|
|
- /*i1 = new OutputImage(width, height);
|
|
|
+ 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));
|
|
|
|
|
|
// dst = (src > 0) ? 1 : 0;
|
|
|
pointingHandMask = pointingHandMask.Or(edgeImage.Image.ThresholdBinary(new Gray(0), new Gray(1)));
|
|
|
- //i1.Image[0] = i1.Image[1] = i1.Image[2] = 255 * pointingHandMask;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ i3.Image[0] = i3.Image[1] = i3.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
//pointingHandMask = pointingHandMask.Dilate(1);
|
|
|
- //i4.Image[0] = i4.Image[1] = i4.Image[2] = 255 * pointingHandMask;
|
|
|
+ i4.Image[0] = i4.Image[1] = i4.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
MCvConnectedComp tmp = new MCvConnectedComp();
|
|
|
// fill with value 2
|
|
@@ -176,19 +176,19 @@ namespace bbiwarg.Detectors.Palm
|
|
|
|
|
|
// dst = (src > 1) ? 0 : 1 (src > 1 <-> src == 2 <-> src filled by flood fill)
|
|
|
pointingHandMask = pointingHandMask.ThresholdBinaryInv(new Gray(1), new Gray(1));
|
|
|
- //i5.Image[0] = i5.Image[1] = i5.Image[2] = 255 * pointingHandMask;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ i8.Image[0] = i8.Image[1] = i8.Image[2] = 255 * pointingHandMask;
|
|
|
|
|
|
// only debug
|
|
|
- //i9.Image[0] = i9.Image[1] = i9.Image[2] = 255 * handImage.And(pointingHandMask);
|
|
|
+ i9.Image[0] = i9.Image[1] = i9.Image[2] = 255 * handImage.And(pointingHandMask);
|
|
|
}
|
|
|
|
|
|
private void findLongestPalmContour()
|