2012-01-19 32 views
2

我嘗試bulid臉使用C++和OpenCV檢測在Visual Studio 2010中applicatyion 2.3.1庫 所以,我聲明字符串類型和初始化:如何加載XML OpenCV的級聯文件2.3.1

字符串face_cascade_name =「haarcascade_frontalface_alt.xml」;

接下來,創建類CascadeClassifier的一個目的:

CascadeClassifier face_cascade;

我加載級聯:

如果{printf的( 「 - ()加載時出錯\ n!」);(face_cascade.load(face_cascade_name)!)返回-1; };

該項目bulid和調試沒有問題,但是當我運行應用程序和應用程序嘗試加載級聯程序崩潰!

我看到這個通訊: 程序'[1288] OpenCV2.0.exe:Native'已退出,代碼爲-1(0xffffffff)。

+0

就你而言,我建議你發佈重現問題所需的最小代碼量。如果我們不知道你的程序想要完成什麼,那麼理解最好的方法是通過檢查代碼來實現。 –

回答

2

我與CascadeClassifierFileStorage有同樣的問題。

例如,如果你試試這個:

FileStorage fs(xml_fname, FileStorage::READ); 
if (!fs.isOpened()) 
{ 
    cout<<"can not read xml"<<endl; 
} 

也許,這是行不通的。

在我的情況,我在VC++通過從調試模式爲發佈模式,在年底(例如opencv_core231.lib)指定.lib文件,而不d和現在的工作。

0

在我的情況下(win7 64,VS 10 express),更改xml文件的文件權限解決了這個問題, 我給Everyone添加了完全控制,並且它工作正常。

1

在我的情況下(OSX 10.9),我輸入整個路徑而不是簡單的「haarcascade_frontalface_alt.xml」,如「/Users/xxx/Desktop/opencv-2.4.7/data/haarcascades/haarcascade_frontalface_alt.xml」。好運