bool myDetector(cv::InputArray image, cv::OutputArray faces, cv::CascadeClassifier *face_cascade){
cv::Mat gray;
if (image.channels() > 1)
cvtColor(image, gray, CV_BGR2GRAY);
else
gray = image.getMat().clone();
equalizeHist(gray, gray);
std::vectorcv::Rect faces_;
face_cascade->detectMultiScale(gray, faces_, 1.4, 2, cv::CASCADE_SCALE_IMAGE, cv::Size(30, 30));
cv::Mat(faces_).copyTo(faces);
return true;
}
(UIImage *) detectFacialLandmark:(UIImage *) image{
double CurrentTime = CACurrentMediaTime();
NSString *pathToFaceCascade = [[NSBundle mainBundle] pathForResource:@"lbpcascade_frontalface" ofType:@"xml"];
cv::Mat faceImage;
UIImageToMat(image, faceImage);
cv::CascadeClassifier face_cascade;
face_cascade.load([pathToFaceCascade UTF8String]);
cv::face::FacemarkKazemi::Params params;
cv::Ptrcv::face::FacemarkKazemi facemark = cv::face::FacemarkKazemi::create(params);
facemark->setFaceDetector((cv::face::FN_FaceDetector)myDetector, &face_cascade);
facemark->loadModel("load model");
std::vectorcv::Rect faces;
resize(faceImage,faceImage,cv::Size(460,460), 0, 0, cv::INTER_LINEAR_EXACT);
facemark->getFaces(faceImage,faces);
std::vector< std::vectorcv::Point2f > shapes;
if(facemark->fit(faceImage,faces,shapes))
{
for( size_t i = 0; i < faces.size(); i++ )
{
cv::rectangle(faceImage, faces[i], cvScalar(255, 0, 0));
}
for(unsigned long i=0;i<faces.size();i++){
for(unsigned long k=0;k<shapes[i].size();k++)
cv::circle(faceImage,shapes[i][k],5,cv::Scalar(0,0,255),cv::FILLED);
}
}
UIImage *returnImage = MatToUIImage(faceImage);
NSLog(@"test processing time : %f", (CACurrentMediaTime() - CurrentTime));
return returnImage;
}
我正在为iOS应用程序做项目。 对于这个项目,我使用的是OpenCV。具体来说,我添加了OpenCV_contrib模块来获取面部标志的信息。
在应用OpenCV_contrib期间,我遇到了一个问题。 facemark-&gt; loadModel(&#34;加载模型&#34;); 为了检测面部标记,我必须找到模型文件。
我想知道如何找到&#34; facemark-&gt; loadModel(&#34;加载模型&#34;)的模型文件; &#34;
答案 0 :(得分:0)
我不知道你是如何安装OpenCV的。但要查找OpenCV的data
,只需转到opencv-master/data
,如果您下载了,请转到https://github.com/opencv/opencv/tree/master/data下载。
以下是OpenCV 3.3的文件列表:
# https://github.com/opencv/opencv/tree/master/data
/opencv-master/data$ tree .
.
├── CMakeLists.txt
├── haarcascades
│ ├── haarcascade_eye_tree_eyeglasses.xml
│ ├── haarcascade_eye.xml
│ ├── haarcascade_frontalcatface_extended.xml
│ ├── haarcascade_frontalcatface.xml
│ ├── haarcascade_frontalface_alt2.xml
│ ├── haarcascade_frontalface_alt_tree.xml
│ ├── haarcascade_frontalface_alt.xml
│ ├── haarcascade_frontalface_default.xml
│ ├── haarcascade_fullbody.xml
│ ├── haarcascade_lefteye_2splits.xml
│ ├── haarcascade_licence_plate_rus_16stages.xml
│ ├── haarcascade_lowerbody.xml
│ ├── haarcascade_profileface.xml
│ ├── haarcascade_righteye_2splits.xml
│ ├── haarcascade_russian_plate_number.xml
│ ├── haarcascade_smile.xml
│ └── haarcascade_upperbody.xml
├── haarcascades_cuda
│ ├── haarcascade_eye_tree_eyeglasses.xml
│ ├── haarcascade_eye.xml
│ ├── haarcascade_frontalface_alt2.xml
│ ├── haarcascade_frontalface_alt_tree.xml
│ ├── haarcascade_frontalface_alt.xml
│ ├── haarcascade_frontalface_default.xml
│ ├── haarcascade_fullbody.xml
│ ├── haarcascade_lefteye_2splits.xml
│ ├── haarcascade_lowerbody.xml
│ ├── haarcascade_profileface.xml
│ ├── haarcascade_righteye_2splits.xml
│ ├── haarcascade_smile.xml
│ └── haarcascade_upperbody.xml
├── hogcascades
│ └── hogcascade_pedestrians.xml
├── lbpcascades
│ ├── lbpcascade_frontalcatface.xml
│ ├── lbpcascade_frontalface_improved.xml
│ ├── lbpcascade_frontalface.xml
│ ├── lbpcascade_profileface.xml
│ └── lbpcascade_silverware.xml
├── readme.txt
└── vec_files
└── trainingfaces_24-24.vec
5 directories, 39 files