使用C++語言,基於opencv的人臉識別
阿新 • • 發佈:2018-12-10
基於OpenCV的人臉識別,主要是用到了訓練好的haarcascade_frontalface_default.xml檔案,這是OpenCV自帶的開源庫檔案,只需要載入程序序之中即可。
#include <opencv2\opencv.hpp> #include <iostream> using namespace std; using namespace cv; //訓練檔案路徑 //Note:路徑需要用雙右下劃線,即"\\" string xmlPath = "F:\\OpenCV\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml"; int main(int argc,char** atgv) { Mat img = imread("face.jpg"); imshow("input image", img); CascadeClassifier detector; detector.load(xmlPath); if (!detector.load(xmlPath)) //載入訓練檔案 { cout << "不能載入指定的xml檔案" << endl; return -1; } vector<Rect> faces; detector.detectMultiScale(img, faces, 1.1, 3, 0, Size(30, 30)); for (size_t t = 0; t < faces.size(); t++){ rectangle(img, faces[t], Scalar(0, 0, 255), 2, 8); } imshow("Result", img); waitKey(0); return 0; }