【发布时间】:2017-11-26 06:02:52
【问题描述】:
我在一个 Xcode 项目中导入了 opencv 和 opencv_contrib 框架,在我的 Objective-C++ 文件中,我加载了一个人脸分类器,然后是一个 Fisher 人脸识别器:
// set up classifier, recognizer, and webcam
-(void) setupAnalyzer:(NSString *)faceCascadeName :(NSString *)fisherDatasetName
{
// load face classifier
cout << "loading face classifier..." << endl;
String faceCascadeNameString = string([faceCascadeName UTF8String]);
faceCascade.load(faceCascadeNameString);
// load face recognizer
cout << "loading face recognizer..." << endl;
fishface = createFisherFaceRecognizer();
String fisherDatasetNameString = string([fisherDatasetName UTF8String]);
fishface->load(fisherDatasetNameString);
}
当我从 Swift 调用这个函数时,看起来面部分类器可以很好地加载我项目中的 xml 文件。但是当我尝试在我的项目中使用另一个 xml 文件加载 Fisher 人脸识别器时,Xcode 显示此错误:
OpenCV Error: Unspecified error (File can't open for reading!) in load, file ~/opencv/modules/face/src/facerec.cpp, line 61
libc++abi.dylib:以 cv::Exception 类型的未捕获异常终止:~/opencv/modules/face/src/facerec.cpp:61:错误:(-2) 无法打开文件读!在函数加载中
我尝试以不同的方式重建 OpenCV 框架,但我一直收到同样的错误!
首先,我很困惑为什么程序要查找项目中不包含的源代码(它正在我计算机上的另一个目录中查找 facerec.cpp)。另外,为什么级联分类器加载得很好?这让我觉得这是我构建 opencv_contrib 模块的方式的问题,因为人脸分类器来自 opencv_contrib。但是我尝试重建 opencv_contrib,我仍然得到这个 OpenCV 错误。
任何帮助将不胜感激!
[更新] 构建 contrib 模块不是问题。我手动将模块包含在 Xcode 中,因此它现在正在项目中查找 facerec.cpp,但仍然无法打开 xml 文件进行读取。
【问题讨论】:
标签: c++ objective-c swift opencv xcode8