dlib landmark+人面识别
#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(); }