写一段利用opencv实现人脸识别的c语言代码
时间: 2023-11-08 18:09:25 浏览: 188
以下是一个使用OpenCV实现人脸识别的C语言示例代码:
```c
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
// 加载分类器
cv::CascadeClassifier face_cascade;
face_cascade.load("haarcascade_frontalface_alt.xml");
// 打开摄像头
cv::VideoCapture cap(0);
if (!cap.isOpened()) {
std::cerr << "无法打开摄像头" << std::endl;
return -1;
}
cv::Mat frame;
while (cap.read(frame)) {
// 转换到灰度图像
cv::Mat gray;
cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY);
// 检测人脸
std::vector<cv::Rect> faces;
face_cascade.detectMultiScale(gray, faces);
// 在图像中标记人脸
for (const auto& face : faces) {
cv::rectangle(frame, face, cv::Scalar(0, 0, 255), 2);
}
// 显示图像
cv::imshow("Face Detection", frame);
// 等待按键
if (cv::waitKey(1) == 'q') {
break;
}
}
return 0;
}
```
这个代码使用OpenCV中的`CascadeClassifier`类加载人脸检测分类器,并通过`detectMultiScale`方法检测图像中的人脸。然后,使用`rectangle`函数在图像中标记检测到的人脸,并使用`imshow`函数显示图像。按下`q`键退出程序。
阅读全文