2013-10-18 13 views
-1

他們,使用哈爾分類器檢測臉

我寫了一段代碼,應該從凸輪檢測我的臉。但是當我運行它時,它說:分割錯誤。我不知道有什麼不對,所以如果你可以看看。這是我的代碼:

String fn_haar = "./haarcascade_frontalface_default.xml"; 
    CascadeClassifier haar_cascade; 
    haar_cascade.load(fn_haar); 

vector< Rect_<int> > bodys; 
haar_cascade.detectMultiScale(input, bodys);//, 1.1, 3, 0, Size(100,100), Size()); 
cv::Mat body; 

Rect body_i = bodys[0]; 
if(!bodys.empty()) 
{ 
    Rect body_i = bodys[0]; 
    body = input(body_i); 
    imshow("body", body); 
    waitKey(0); 
} 

輸入是來自凸輪的圖像。

+0

沒有錯誤發生在哪一行?你用過調試器嗎?現在你還沒有發佈足夠的信息給其他人給你很好的幫助。 – Aurelius

回答

1
Rect body_i = bodys[0]; 
if(!bodys.empty()) 
{ ... 

看,你[0]前檢查,如果是空的訪問人體的(當然,如果它是空的,它崩潰)

你甚至不需要該行的代碼在那裏,是嗎?

也請檢查級聯負載,以避免進一步的「驚喜」:

bool loaded = haar_cascade.load(fn_haar); 
if (! loaded) 
{ // whaa, check the path again. } 
+0

我不需要那裏的代碼沒有。我的錯。問題在於級聯的加載。這不起作用。試圖找出現在 – Heimmot