如何解决OpenCV 人脸检测 - if 语句
我正在使用 OpenCV 在 C++ 中检测人脸。这段代码运行良好,但我想添加新功能,如果代码找不到人脸。所以我将使用 if-else 语句。但我不知道如何使用它。 if 语句条件中应该包含哪些内容?感谢阅读,抱歉英语不好。
CascadeClassifier 级联; 矢量人脸;
String path("d:\\down\\pro\\*.jpg");
vector<String> str;
int index = 0;
char buf[256];
glob(path,str,true);
cout << "load number:" << str.size() << endl;
if (str.size() == 0)
cout << "no image\n" << endl;
for (int cnt = 0; cnt < str.size(); cnt++) {
p_img = imread(str[cnt]);
if (0 == cascade.load(classifier))
{
cout << "Error CascadeClassifier load" << endl;
exit(0);
}
cascade.detectMultiScale(p_img,faces,1.2,3,0 | CV_HAAR_SCALE_IMAGE,Size(30,30));
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(p_img,faces[i],Scalar(255,255,255),2,8,0);
}
解决方法
据我所知,faces
是一个包含分类器找到的人脸的数组。如果你只检查这个数组的长度怎么办?如果 faces.size()==0
那么..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。