opencv 人脸检测 c++
时间: 2024-01-10 21:21:28 浏览: 109
以下是使用OpenCV在C++环境下进行人脸检测的示例代码:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 加载人脸检测分类器
cv::CascadeClassifier faceCascade;
faceCascade.load("haarcascade_frontalface_default.xml");
// 加载图像
cv::Mat image = cv::imread("image.jpg");
// 将图像转换为灰度图像
cv::Mat grayImage;
cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
// 进行人脸检测
std::vector<cv::Rect> faces;
faceCascade.detectMultiScale(grayImage, faces, 1.1, 3, 0, cv::Size(30, 30));
// 在图像上绘制检测到的人脸
for (const auto& face : faces) {
cv::rectangle(image, face, cv::Scalar(0, 255, 0), 2);
}
// 显示结果图像
cv::imshow("Face Detection", image);
cv::waitKey(0);
return 0;
}
```
这段代码首先加载了人脸检测分类器`haarcascade_frontalface_default.xml`,然后加载了一张图像。接下来,将图像转换为灰度图像,并使用`detectMultiScale`函数进行人脸检测。最后,将检测到的人脸在原图像上用矩形框标出,并显示结果图像。
阅读全文