【问题标题】:Matlab: Working on obtaining detected face using 'Detect and Track Multiple Face'Matlab:使用“检测和跟踪多个人脸”获取检测到的人脸
【发布时间】:2016-09-07 23:52:07
【问题描述】:

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

但是,当主题不在视野范围内时,会出现“index is out of bounds because size(tracker.Bboxes)=[0,4]”的错误。

【问题讨论】:

  • 您得到的确切错误信息是什么?您可以通过将受控代码嵌套在将检查tracker.Bboxes 大小的if 语句中或将其嵌套在try/catch 块中并自己处理错误来处理此问题

标签: matlab crop face-detection video-tracking


【解决方案1】:

当您不在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

对我有用

【讨论】:

  • 感谢@vinodlahire 它正在工作。但我必须检查 if ~isempty(tracker.Bboxes) 而不是 if ~isempty(bboxes)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 2013-09-24
  • 2019-11-18
  • 2020-10-24
  • 1970-01-01
  • 2016-07-20
相关资源
最近更新 更多