我刚刚将我的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中。
在实际检测中移动了线程内的负载,似乎可以解决该问题。
仍然不确定为什么以前的版本没有生效。