|
@@ -151,6 +151,8 @@ namespace bbiwarg
|
|
//detect palm
|
|
//detect palm
|
|
Timer.start("palmDetection");
|
|
Timer.start("palmDetection");
|
|
palmDetector = new PalmDetector(depthImage, edgeImage, fingerDetector.Fingers, depthPalmTouchOutputImage);
|
|
palmDetector = new PalmDetector(depthImage, edgeImage, fingerDetector.Fingers, depthPalmTouchOutputImage);
|
|
|
|
+ if (sourceIsMovie() && getCurrentMovieFrame() == 0)
|
|
|
|
+ PalmDetector.resetFilter();
|
|
Timer.stop("palmDetection");
|
|
Timer.stop("palmDetection");
|
|
|
|
|
|
//detect touchEvents
|
|
//detect touchEvents
|
|
@@ -170,16 +172,22 @@ namespace bbiwarg
|
|
touchEventVisualizer = new TouchEventVisualizer(Width, Height);
|
|
touchEventVisualizer = new TouchEventVisualizer(Width, Height);
|
|
if (getCurrentMovieFrame() == 0)
|
|
if (getCurrentMovieFrame() == 0)
|
|
touchEventVisualizer.Reset();
|
|
touchEventVisualizer.Reset();
|
|
- foreach (PalmTouchEvent e in palmTouchDetector.PalmTouchEvents)
|
|
|
|
|
|
+ if (palmTouchDetector != null)
|
|
{
|
|
{
|
|
- if (sourceIsMovie())
|
|
|
|
- touchEventVisualizer.addPalmTouchEvent(e, getCurrentMovieFrame());
|
|
|
|
- else
|
|
|
|
- touchEventVisualizer.addPalmTouchEvent(e, videoFrame);
|
|
|
|
|
|
+ foreach (PalmTouchEvent e in palmTouchDetector.PalmTouchEvents)
|
|
|
|
+ {
|
|
|
|
+ if (sourceIsMovie())
|
|
|
|
+ touchEventVisualizer.addPalmTouchEvent(e, getCurrentMovieFrame());
|
|
|
|
+ else
|
|
|
|
+ touchEventVisualizer.addPalmTouchEvent(e, videoFrame);
|
|
|
|
+ }
|
|
|
|
+ touchEventVisualizer.updateImage();
|
|
}
|
|
}
|
|
- touchEventVisualizer.updateImage();
|
|
|
|
|
|
|
|
- // output images
|
|
|
|
|
|
+ // add borders
|
|
|
|
+ edgeFingerOutputImage.drawRectangle(0, 0, Width - 1, Height - 1, 255, 255, 255);
|
|
|
|
+ depthPalmTouchOutputImage.drawRectangle(0, 0, Width - 1, Height - 1, 255, 255, 255);
|
|
|
|
+ touchEventVisualizer.OutputImage.drawRectangle(0, 0, Width - 1, Height - 1, 255, 255, 255);
|
|
OutputImages = new OutputImage[] { edgeFingerOutputImage, depthPalmTouchOutputImage, touchEventVisualizer.OutputImage};
|
|
OutputImages = new OutputImage[] { edgeFingerOutputImage, depthPalmTouchOutputImage, touchEventVisualizer.OutputImage};
|
|
|
|
|
|
Timer.stop("processFrameUpdate");
|
|
Timer.stop("processFrameUpdate");
|