opencv人脸识别源代码c++
时间: 2023-12-16 12:01:02 浏览: 106
基于C++ opencv实现人脸识别【100012285】
OpenCV是一个开源的计算机视觉库,可以用于实现人脸识别功能。以下是一个示例的人脸识别源代码(用C语言实现):
```c
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
using namespace cv;
using namespace cv::face;
int main()
{
// 创建人脸识别器
Ptr<LBPHFaceRecognizer> model = LBPHFaceRecognizer::create();
// 准备训练数据
std::vector<Mat> images;
std::vector<int> labels;
// 输入样本图片和对应的标签
images.push_back(imread("person1.jpg", 0));
labels.push_back(1);
images.push_back(imread("person2.jpg", 0));
labels.push_back(2);
// 训练人脸识别模型
model->train(images, labels);
// 加载待识别的测试图片
Mat testImage = imread("test.jpg", 0);
// 进行人脸识别
int predictedLabel = -1;
double predictedConfidence = 0.0;
model->predict(testImage, predictedLabel, predictedConfidence);
// 输出识别结果
if (predictedLabel != -1)
{
std::cout << "Predicted label: " << predictedLabel << std::endl;
std::cout << "Confidence: " << predictedConfidence << std::endl;
}
else
{
std::cout << "No face detected in the test image." << std::endl;
}
return 0;
}
```
上述代码首先创建了一个LBPHFaceRecognizer的对象,接着加载训练样本图片和对应的标签,并通过train函数对模型进行训练。然后,代码加载待识别的测试图片,调用predict函数进行人脸识别,并输出识别结果。如果成功识别出人脸,代码将打印出预测的标签和置信度。如果无法在测试图片中检测到人脸,则输出未检测到人脸的提示信息。
阅读全文