2015-03-31 59 views
1

我刚刚更新我的iOS项目到版本OpenCV 3.0,每当我尝试加载haarcascade文件时,我得到一个断言失败。OpenCV 3.0 CascadeClassifier.load()断言失败(!空)

上的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.

回答

0

好理解了它,我是在一个单独的线程中运行“detectMultiScale”,并试图加载haarcascade文件中的主要viewDidLoad中。

移动线程内的负载进行实际检测,它似乎修复它。

不知道为什么以前的版本不受影响。