0

目前我尝试运行示例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
.....

但是,当主题不在视野范围内时,将出现“索引超出范围因为 size(tracker.Bboxes)=[0,4]”的错误。

4

1 回答 1

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

它对我有用

于 2016-05-12T11:52:26.393 回答