Opencv C++ 教程-人脸识别

【1】代码

复制代码
int FaceDetect(string path) {
	cv::Mat image = cv::imread(path);
	if (image.empty()) {
		std::cout << "Could not open or find the image" << std::endl;
		return -1;
	}

	cv::CascadeClassifier face_cascade;
	if (!face_cascade.load(cv::samples::findFile("haarcascade_frontalface_alt.xml"))) //xml的绝对路径
    {
		std::cout << "Error loading face cascade" << std::endl;
		return -1;
	}

	std::vector<cv::Rect> faces;
	cv::Mat gray;
	cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);
	cv::equalizeHist(gray, gray);

	face_cascade.detectMultiScale(gray, faces, 1.1, 2, 0 | cv::CASCADE_SCALE_IMAGE, cv::Size(30, 30));

	for (size_t i = 0; i < faces.size(); i++) {
		cv::rectangle(image, faces[i], cv::Scalar(255, 0, 0), 2);
	}

	cv::imshow("Face Detection", image);
	cv::waitKey(0);
}

【2】haarcascade_frontalface_alt.xml

Haar分类器实际上是Boosting算法的一个应用,Haar分类器用到了Boosting算法中的AdaBoost算法,只是把AdaBoost算法训练出的强分类器进行了级联,并且在底层的特征提取中采用了高效率的矩形特征和积分图方法

相关推荐
耿直小伙10 分钟前
UI界面点击按钮一直转圈假死
c++·ui
我是华为OD~HR~栗栗呀14 分钟前
测试转C++开发面经(华为OD)
java·c++·后端·python·华为od·华为·面试
qiu_zhongya31 分钟前
iree 用C++来运行Qwen 2.5 0.5b
开发语言·c++·人工智能
汪宁宇31 分钟前
giflib5.2.2 在Qt与VS C++中实现Gif缩放示例
开发语言·c++·qt
啊?啊?38 分钟前
C/C++练手小项目之倒计时与下载进度条模拟
c语言·开发语言·c++
荼蘼1 小时前
Dlib+OpenCV 人脸轮廓绘制
人工智能·opencv·计算机视觉
西阳未落1 小时前
C++基础(22)——模板的进阶
开发语言·c++
waves浪游1 小时前
C++模板进阶
开发语言·c++
青草地溪水旁2 小时前
设计模式(C++)详解——迭代器模式(1)
c++·设计模式·迭代器模式
青草地溪水旁2 小时前
设计模式(C++)详解——迭代器模式(2)
java·c++·设计模式·迭代器模式