2016-05-12 51 views
0

目前我嘗試運行示例Detect and Track Multiple Face。當我嘗試裁剪檢測到的面部的圖像如下:Matlab:使用'Detect and Track Multiple Face'獲取檢測到的臉部

..... 
while keepRunning 
..... 
displayFrame = insertMarker(displayFrame, tracker.Points); 
for I=1:size(bboxes,1) 
    J = imcrop(displayFrame, tracker.Bboxes(I, :)); 
    imshow(J); 
    cropfile = sprint('crop %d.jpg, I); 
    imwrite(J, cropfile, 'jpg'); 
end 
..... 

然而,當主體不看,會出現一個錯誤關於「索引超出範圍的大小,因爲(tracker.Bboxes)= [ 0,4]。

+1

的就是你得到確切的錯誤信息前,應檢查呢?你可以通過嵌套在if語句中的引入代碼來處理這個問題,該語句將檢查tracker.Bboxes的大小,或者將它嵌套在try/catch塊中,並自己處理錯誤 – BillBokeey

回答

2

當你沒有更多frame然後包圍盒是空的;你循環

if ~isempty(bboxes) 
    for I=1:size(bboxes,1) 
    J = imcrop(displayFrame, tracker.Bboxes(I, :)); 
    imshow(J); 
    cropfile = strcat('crop', num2str(I)); 
    cropfilefull =[cropfile,'.jpg']; 
    imwrite(J, cropfilefull, 'jpg'); 
    end 
end 

它爲我工作

+0

感謝@vinodlahire它的工作。但我必須檢查〜isempty(tracker.Bboxes)而不是if〜isempty(bboxes) –