while (isInputFace)
{
Mat frame;
capture.read(frame);
// 检测人脸
std::vector<Rect> faces;
faceCascade.detectMultiScale(frame, faces, 1.1, 4, 0, Size(100, 100));
// 绘制人脸矩形框
for (const Rect& face : faces)
{
rectangle(frame, face, Scalar(255, 0, 0), 2);
}
// 显示当前帧图像
imshow("录入人脸", frame);
// 等待按键事件
int key = waitKey(10);
// 按下ESC键退出录入人脸
if (key == 27)
{
isInputFace = false;
break;
}
// 按下空格键保存人脸图像
else if (key == 32)
{
// 构造保存文件名
std::string filename = "face_" + std::to_string(counter) + ".jpg";
// 保存人脸图像
Mat faceImage =frame(face);
imwrite(filename, faceImage);
// 增加文件名计数器
counter++;
// 显示保存成功消息框
QMessageBox::information(this, "成功", "人脸图像保存成功");
}
}
Mat faceImage =frame(face); 报错expected primary-expression before ')' token
face 没定义 这是要用 faces 吗?