opencv_C++ 级联分类器代码示例

一、代码示例

#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;
}

二、结果展示

opencv_C++ 级联分类器代码示例
opencv_C++ 级联分类器代码示例