【发布时间】:2017-03-15 19:20:27
【问题描述】:
目前我正在尝试使用 OpenCV 级联分类器在我的 iOS 应用程序中检测人脸。问题是当我去加载分类器时,它失败了,因为“haarcascade_frontalface_alt.xml”的路径名不正确。
这是我的代码:
cv::String face_cascade_name = "haarcascade_frontalface_alt.xml";
void detectFaces(cv::Mat frame){
cv::CascadeClassifier face_cascade;
if (face_cascade.load(face_cascade_name)){
printf("Load complete");
}else{
printf("Load error");
}
std::vector<cv::Rect> faces;
std::vector<cv::Mat> rgbChannels(3);
cv::split(frame, rgbChannels); // Making the frame gray scale
cv::Mat frame_gray = rgbChannels[2];
face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE|CV_HAAR_FIND_BIGGEST_OBJECT, cv::Size(150,150));
if(faces.size()> 0){
printf("TRUE");
}
}
由于这是一个 iOS 项目,我不知道如何在框架中找到所需的 xml 文件的路径。将级联分类器加载到 iOS 项目中的正确方法是什么?或者,包含正确文件名以便正确看到它的正确方法是什么?
任何帮助将不胜感激。
【问题讨论】:
-
你试过完整路径吗?
-
关于如何用 C++ 做到这一点的任何想法?我找不到文件的完整路径,因为我的计算机上没有安装 OpenCV。一直在用 iPhone 测试它,所以我不需要它。
标签: c++ ios opencv cascade-classifier