OpenCV 3.0 CascadeClassifier.load()断言失败(!空)

时间:2015-03-31 09:41:54

标签: ios opencv face-detection opencv3.0

我刚刚将我的iOS项目更新为OpenCV 3.0版本,每当我尝试加载haarcascade文件时,我都会收到断言失败。

以前版本的OpenCV工作正常,我没有改变路径和加载文件的方式(见下文),它似乎不适用于版本3.0

NSString *faceCascadePath = [[NSBundle mainBundle] pathForResource:kFaceCascadeFilename ofType:@"xml"];
_faceCascade.load([faceCascadePath UTF8String])

我也试图修改我读取文件的方式(我在下面找到的另一个例子)。

const CFIndex CASCADE_NAME_LEN = 2048;
char *CASCADE_NAME = (char *) malloc(CASCADE_NAME_LEN);
CFStringGetFileSystemRepresentation( (CFStringRef)faceCascadePath, CASCADE_NAME, CASCADE_NAME_LEN);

但又无济于事......

我们非常感谢任何建议。

下进行。

1 个答案:

答案 0 :(得分:0)

好的想通了,我在一个单独的线程中运行“detectMultiScale”并尝试在主ViewDidLoad中加载haarcascade文件。

在执行实际检测的线程中移动了负载,它似乎修复了它。

仍然不确定为什么之前的版本没有受到影响。