#include "stdafx.h"
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_processing/render_face_detections.h>
#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
using namespace dlib;
//#pragma comment(lib,"dlib.lib")
int main(int argc, char** argv)
{
long start, end;
char img_file[] = "test.bmp";
char landmark_file[] = "68.dat";
//
Mat img = imread(img_file);
//
frontal_face_detector detector = get_frontal_face_detector();
shape_predictor sp;
deserialize(landmark_file) >> sp;
array2d<rgb_pixel> arrImg;
load_image(arrImg, img_file);
start = clock();
std::vector<dlib::rectangle> dets = detector(arrImg);
for (unsigned long j = 0; j < dets.size(); ++j)
{
full_object_detection shape = sp(arrImg, dets[j]);
for (unsigned long i = 0; i < shape.num_parts(); i++)
{
point pt = shape.part(i);
int x = pt.x();
int y = pt.y();
line(img, Point(pt.x(), pt.y()), Point(pt.x(), pt.y()), Scalar(0, 0, 255), 2);
}
}
end = clock();
printf("%ld\n", end - start);//单位:毫秒
//
imshow("img", img);
waitKey();
}