2016-05-12 21 views
0

現在、私は例Detect and Track Multiple Faceを実行しようとしています。私は次のように検出された顔の画像をトリミングしようとすると:Matlab: '複数の顔の検出と追跡'を使用して検出された顔を取得する作業

..... 
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]。あなたはより多くのframeその後、バウンディングボックス内にいないです

+1

あなたが得る正確なエラーメッセージは何のために働い

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 

をループする前にそれを確認する必要がありますか?これは、 'tracker.Bboxes'のサイズをチェックする' if'文の中に犯罪コードを入れ子にするか、try/catchブロックの中にネストしてエラーを処理することで処理できます。 – BillBokeey

答えて

2

は空です。あなたはそれが私

+0

@vinodlahireが動作しています。しかし、〜isempty(bboxes)の代わりに〜isempty(tracker.Bboxes)をチェックする必要があります。 –