*
* @author Florian Frankenberger
*/
+@LATTICE("R<CT,R*")
+@METHODDEFAULT("OUT<THIS,THIS<IN,THISLOC=THIS,RETURNLOC=OUT")
public class LEAImplementation {
+ @LOC("CT")
private ClassifierTree classifierTree;
+ @LOC("R")
private Rectangle2D lastRectangle;
public LEAImplementation() {
this.loadFaceData();
}
- public FaceAndEyePosition getEyePosition(Image image) {
+ @LATTICE("OUT<V,V<THIS,THIS<IN,V*,THISLOC=THIS,RETURNLOC=OUT")
+ @PCLOC("THIS")
+ public FaceAndEyePosition getEyePosition(@LOC("IN") Image image) {
if (image == null)
return null;
-
- Rectangle2D faceRect = classifierTree.locateFaceRadial(image, lastRectangle);
- EyePosition eyePosition = null;
+ @LOC("THIS,LEAImplementation.R") Rectangle2D faceRect =
+ classifierTree.locateFaceRadial(image, lastRectangle);
+ if (faceRect.getWidth() > image.getWidth() || faceRect.getHeight() > image.getHeight()) {
+ return null;
+ }
+ @LOC("V") EyePosition eyePosition = null;
if (faceRect != null) {
lastRectangle = faceRect;
faceRect = null;
- Point point = readEyes(image, lastRectangle);
+ @LOC("V") Point point = readEyes(image, lastRectangle);
if (point != null) {
eyePosition = new EyePosition(point, lastRectangle);
}
+ } else {
+ lastRectangle = null;
}
System.out.println("eyePosition=" + eyePosition);
return new FaceAndEyePosition(lastRectangle, eyePosition);
}
- private Point readEyes(Image image, Rectangle2D rect) {
- EyeDetector ed = new EyeDetector(image, rect);
+ @LATTICE("OUT<P,P<IN,OUT<THIS,THISLOC=THIS,RETURNLOC=OUT")
+ @PCLOC("P")
+ private Point readEyes(@LOC("IN") Image image, @LOC("IN") Rectangle2D rect) {
+ @LOC("OUT") EyeDetector ed = new EyeDetector(image, rect);
return ed.detectEye();
}