2015-03-31 136 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中。

移動線程內的負載進行實際檢測,它似乎修復它。

不知道爲什麼以前的版本不受影響。