Пример #1
0
int main(int argc, char *argv[]) {
  google::InitGoogleLogging(argv[0]);
  FLAGS_alsologtostderr = false;
  FaceDetector fd;
  Landmarker lder;
  fd.LoadXML("../haarcascade_frontalface_alt.xml");
  lder.LoadModel("../deeplandmark");

  Mat image;
  Mat gray;
  image = imread("../test.jpg");
  if (image.data == NULL) return -1;
  cvtColor(image, gray, CV_BGR2GRAY);

  vector<Rect> bboxes;
  fd.DetectFace(gray, bboxes);

  vector<Point2f> landmarks;
  for (int i = 0; i < bboxes.size(); i++) {
    BBox bbox_ = BBox(bboxes[i]).subBBox(0.1, 0.9, 0.2, 1);
    landmarks = lder.DetectLandmark(gray, bbox_);
    showLandmarks(image, bbox_.rect, landmarks);
  }

  return 0;
}