我是一些如何打开 CV 的新手,只是对教程进行了一些实验,以了解有关该库的使用和功能的一些信息,在已经放置在 Open CV 官方网站上的教程之一中,有是一段代码,它是关于检测一些训练有素的人脸和预测网络摄像头上的人脸,视频中的人脸识别
现在我正在尝试修改代码,以便使用本地数据库中保存的图片,并在检测到的面部和上面的标签上给出相同的输出,我已经修改了代码(在提到的代码的第 88 行之后在教程中)以这种方式:
CascadeClassifier haar_cascade;
haar_cascade.load(fn_haar);
for(;;) {
Mat gray;
Mat original;
gray = imread("F:\datasets\23.jpg",0);
original = imread("F:\datasets\23.jpg");
vector< Rect_<int> > faces;
haar_cascade.detectMultiScale(gray, faces);
for(int i = 0; i < faces.size(); i++) {
Rect face_i = faces[i];
Mat face = gray(face_i);
Mat face_resized;
cv::resize(face, face_resized, Size(im_width, im_height), 1.0, 1.0, INTER_CUBIC);
// predict:
int prediction = model->predict(face_resized);
// visualize:
rectangle(original, face_i, CV_RGB(0, 255,0), 1);
string box_text = format("Prediction = %d", prediction);
int pos_x = std::max(face_i.tl().x - 10, 0);
int pos_y = std::max(face_i.tl().y - 10, 0);
putText(original, box_text, Point(pos_x, pos_y), FONT_HERSHEY_PLAIN, 1.0, CV_RGB(0,255,0), 2.0);
}
// Show the result:
imshow("face_recognizer", original);
// And display it:
char key = (char) waitKey(20);
// Exit this loop on escape:
if(key == 27)
break;
}
但是当我执行代码时,它会报告“OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in unknown function”任何人都可以帮我解决这个问题来检测和解决代码中的错误吗?