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算法训练出的强分类器进行了级联,并且在底层的特征提取中采用了高效率的矩形特征和积分图方法

相关推荐
Code Slacker35 分钟前
LeetCode Hot100 —— 滑动窗口(面试纯背版)(四)
数据结构·c++·算法·leetcode
SHERlocked932 小时前
摄像头 RTSP 流视频多路实时监控解决方案实践
c++·后端·音视频开发
roman_日积跬步-终至千里2 小时前
【计算机视觉(16)】语义理解-训练神经网络1_激活_预处理_初始化_BN
人工智能·神经网络·计算机视觉
tang&3 小时前
哈希碰撞攻防战:C++闭散列与开散列实现全解析
c++·哈希算法
眠りたいです3 小时前
现代C++:C++11并发支持库
开发语言·c++·多线程·c++11·c++并发支持库
小灰灰搞电子3 小时前
Rust可以取代C++么?
开发语言·c++·rust
一个没有感情的程序猿3 小时前
前端实现人体骨架检测与姿态对比:基于 MediaPipe 的完整方案
机器学习·计算机视觉·前端框架·开源
微笑倾城4 小时前
Windows平台下CMake工程中使用protobuf
c++·cmake
AA陈超4 小时前
枚举类 `ETriggerEvent`
开发语言·c++·笔记·学习·ue5
C语言小火车4 小时前
【C++】学生管理系统设计与实现丨SQLite数据库版本
开发语言·c++