// sdk_test_face_landmark68.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "Inc/DeepCamFaceApi.h" #include "Inc/TimeCount.h" void test1() { cv::VideoCapture camera1(1); if (!camera1.isOpened()) return; while (true) { cv::Mat img; camera1 >> img; if (!img.empty()) { std::vector face_infos; { USE_TIME t("FaceDetect ==> "); DeepCamFaceDetect(img, face_infos); } float landmark68[136] = { 0 }; for (auto& obj : face_infos) { USE_TIME t("Get Landmark68 => "); DeepCamGetFaceLandmarks68(img, obj.x1, obj.y1, obj.x2, obj.y2, landmark68); break; } for (int i = 0; i < 136; i++) { cv::circle(img, cv::Point(landmark68[i * 2], landmark68[i * 2 + 1]), 1, cv::Scalar(0, 0, 255), 2); } cv::imshow("show", img); cv::waitKey(1); } } } void test2() { cv::VideoCapture camera1(1); if (!camera1.isOpened()) return; while (true) { cv::Mat img; camera1 >> img; if (!img.empty()) { int face_num = 0; { USE_TIME t("FaceDetect ==> "); face_num = DeepCamFaceDetectStd(img.data, img.cols, img.rows, PIXEL_BGR); } float landmark68[136] = { 0 }; if (face_num > 0) { USE_TIME t("Get Landmark68 => "); DeepCamGetFaceLandmark68Std(0,landmark68); } for (int i = 0; i < 136; i++) { cv::circle(img, cv::Point(landmark68[i * 2], landmark68[i * 2 + 1]), 1, cv::Scalar(0, 0, 255), 2); } } cv::imshow("show", img); cv::waitKey(1); } } void test_face_quality() { cv::VideoCapture camera1(1); if (!camera1.isOpened()) return; while (true) { cv::Mat img; camera1 >> img; if (!img.empty()) { int face_num = 0; { USE_TIME t("FaceDetect ==> "); face_num = DeepCamFaceDetectStd(img.data, img.cols, img.rows, PIXEL_BGR); } float score = 0; if (face_num > 0) { USE_TIME t("Get Face Quality => "); DeepCamGetFaceQualityStd(0, score); } cv::putText(img, std::to_string((int)score), cv::Point(10, 45), 2, 2, cv::Scalar(0,0,255), 2); float face_rect[4] = { 0.f }; DeepCamGetFaceRectStd(0, face_rect); cv::rectangle(img, cv::Rect(face_rect[0], face_rect[1], face_rect[2] - face_rect[0], face_rect[3] - face_rect[1]), cv::Scalar(0,0255), 2); } cv::imshow("show", img); cv::waitKey(1); } } int main() { //test_face_quality(); test2(); return 0; }