我刚刚将我的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);

但是再次无济于事...

任何建议将不胜感激。

C。

最佳答案

好的,我已经在一个单独的线程中运行“detectMultiScale”,并试图将haarcascade文件加载到主ViewDidLoad中。

在实际检测中移动了线程内的负载,似乎可以解决该问题。

仍然不确定为什么以前的版本没有生效。

10-06 09:18