OpenCV & C++實現人臉識別

1目標

OpenCV & C++實現人臉識別

2代碼

#include <opencv2\opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

//訓練文件路徑
//Note:路徑需要用雙右下劃線,即"\\"
string xmlPath = "D:\\Program Files\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml";


int main(int argc, char** atgv) {

    Mat img = imread("face1.jpg");
    resize(img, img, Size(500, 500));
    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;
}

3OpenCV中既有的訓練結果

OpenCV中自帶訓練結果,加載出來就能使用,不用重新訓練。

string xmlPath = "D:\\Program Files\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml";

殘留問題

接口還沒細研究,代碼沒細調。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章