一、代码示例
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat srcImage = imread("dlrb.jpg");
Mat grayImage;
cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
// 加载级联分类器
string path = "E:/360Download/haarcascade_frontalface_alt2.xml";
CascadeClassifier face_cascade;
if (!face_cascade.load(path))
{
printf("could not load haar data...\n");
return -1;
}
// 直方图均衡化
equalizeHist(grayImage, grayImage);
// 级联检测
vector<Rect> faces;
face_cascade.detectMultiScale(grayImage, faces, 1.1, 2, 0, Size(3, 3));
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(srcImage, faces[i], Scalar(0, 0, 255), 2, 8, 0);
}
imshow("级联检测", srcImage);
waitKey(0);
return 0;
}
二、结果展示