@Override public SpatialLocation clone() { final SpatialLocation c = (SpatialLocation) super.clone(); return c; } }
@Override public SpatialLocation clone() { final SpatialLocation c = (SpatialLocation) super.clone(); return c; } }
@Override public Point2dImpl copy() { return clone(); }
@Override public void drawDetectedFace(MBFImage image, int thickness, KEDetectedFace f) { Rectangle bounds = f.getBounds(); image.drawShape(bounds,thickness, boundingBoxColour); FacialKeypoint[] kp = f.getKeypoints(); for (FacialKeypoint facialKeypoint : kp) { Point2dImpl position = facialKeypoint.position.clone(); position.translate(bounds.x, bounds.y); image.drawPoint(position,pointColour,thickness); } }
@Override public synchronized void beforeUpdate(MBFImage frame) { List<? extends DetectedFace> faces = null; if (findKeypoints) { faces = engine .detectFaces(Transforms.calculateIntensityNTSC(frame)); } else { faces = innerEngine.detectFaces(Transforms .calculateIntensityNTSC(frame)); } if (faces.size() > 0) { Rectangle r = faces.get(0).getBounds(); ((HaarCascadeDetector) innerEngine) .setMinSize((int) (r.width * 0.9)); } else { ((HaarCascadeDetector) innerEngine).setMinSize(1); } for (DetectedFace face : faces) { final Shape bounds = face.getBounds(); MBFImageRenderer renderer = frame.createRenderer(); renderer.drawPolygon(bounds.asPolygon(), RGBColour.RED); if (findKeypoints) { for (FacialKeypoint kp : ((KEDetectedFace) face).getKeypoints()) { Point2d pt = kp.position.clone(); pt.translate((float) bounds.minX(), (float) bounds.minY()); renderer.drawPoint(pt, RGBColour.GREEN, 3); } } } }
@Override public synchronized void beforeUpdate(MBFImage frame) { List<? extends DetectedFace> faces = null; if (findKeypoints) { faces = engine .detectFaces(Transforms.calculateIntensityNTSC(frame)); } else { faces = innerEngine.detectFaces(Transforms .calculateIntensityNTSC(frame)); } if (faces.size() > 0) { Rectangle r = faces.get(0).getBounds(); ((HaarCascadeDetector) innerEngine) .setMinSize((int) (r.width * 0.9)); } else { ((HaarCascadeDetector) innerEngine).setMinSize(1); } for (DetectedFace face : faces) { final Shape bounds = face.getBounds(); MBFImageRenderer renderer = frame.createRenderer(); renderer.drawPolygon(bounds.asPolygon(), RGBColour.RED); if (findKeypoints) { for (FacialKeypoint kp : ((KEDetectedFace) face).getKeypoints()) { Point2d pt = kp.position.clone(); pt.translate((float) bounds.minX(), (float) bounds.minY()); renderer.drawPoint(pt, RGBColour.GREEN, 3); } } } }
final Point2d pt = kp.position.clone(); pt.translate((float) transBounds.minX(), (float) transBounds.minY()); renderer.drawPoint(pt, RGBColour.GREEN, 3);
final Point2d pt = kp.position.clone(); pt.translate((float) transBounds.minX(), (float) transBounds.minY()); renderer.drawPoint(pt, RGBColour.GREEN, 3);