给我一个人脸识别的C代码
时间: 2024-01-05 12:04:06 浏览: 107
以下是一个基于OpenCV库的简单人脸识别的C代码示例:
```c
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 加载人脸识别模型
CascadeClassifier face_cascade;
if (!face_cascade.load("haarcascade_frontalface_alt.xml")) {
printf("加载人脸识别模型失败\n");
return -1;
}
// 加载图片进行人脸识别
Mat img = imread("test.jpg");
std::vector<Rect> faces;
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
equalizeHist(gray, gray);
face_cascade.detectMultiScale(gray, faces, 1.1, 2, 0 | CASCADE_SCALE_IMAGE, Size(30, 30));
// 在图片中标出人脸位置
for (size_t i = 0; i < faces.size(); i++)
{
Point center(faces[i].x + faces[i].width / 2, faces[i].y + faces[i].height / 2);
ellipse(img, center, Size(faces[i].width / 2, faces[i].height / 2), 0, 0, 360, Scalar(255, 0, 255), 4, 8, 0);
}
// 显示处理后的图片
namedWindow("人脸识别结果", WINDOW_NORMAL);
imshow("人脸识别结果", img);
waitKey(0);
return 0;
}
```
这个代码使用了 OpenCV 的 CascadeClassifier 类来加载人脸识别模型,然后对一张测试图片进行人脸识别,并在图片中标出人脸位置。需要注意的是,这个代码仅仅是一个简单的示例,实际上人脸识别的实现可能会更加复杂和精细。
阅读全文