1. 程式人生 > >使用C++語言,基於opencv的人臉識別

使用C++語言,基於opencv的人臉識別

  基於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;

}