| 384 | // quarter models are for right facing faces (wrt the viewer). |
| 385 | |
| 386 | static Shape StartShapeFromDetPar( |
| 387 | const DetectorParameter& detpar_roi, // in: detpar wrt the ROI |
| 388 | const Image& face_roi, // in |
| 389 | const Shape& meanshape, // in |
| 390 | ESTART estart) // in: use mouth etc. to posn start shape? |
| 391 | { |
| 392 | Shape startshape; |
| 393 | switch (estart) |
| 394 | { |
| 395 | case ESTART_RECT_ONLY: |
| 396 | startshape = EstartRectOnly(detpar_roi, face_roi, meanshape); |
| 397 | break; |
| 398 | case ESTART_EYES: |
| 399 | startshape = EstartEyes(detpar_roi, face_roi, meanshape); |
| 400 | break; |
| 401 | case ESTART_EYE_AND_MOUTH: |
| 402 | startshape = EstartEyeMouth(detpar_roi, face_roi, meanshape); |
| 403 | break; |
| 404 | default: |
| 405 | Err("Invalid estart %d", estart); |
| 406 | } |
| 407 | return JitterPointsAt00(startshape); |
| 408 | } |
| 409 | |
| 410 | static void TraceEyesMouth( |
| 411 | Image& face_roi, // out: ROI around face, possibly rotated upright |
no test coverage detected