код Matlab для обнаружения лица из нескольких кадров и обрезки лиц?

Я написал код Matlab для обнаружения лица из видео. Но он обнаруживает лицо из одного кадра. Он показывает обрезанные лица для одного кадра. Я хочу обнаружить и обрезать лицо из нескольких кадров. Вот мой код

clc;
clear all;

%read frames from video
obj=VideoReader('vtu.avi');

 img = read(obj,1);
 figure(1),imshow(img);

 %detect face using vision.CascadeObjectDetector
 FaceDetect = vision.CascadeObjectDetector; 
   BB = step(FaceDetect,img);
   figure(2),imshow(img);

   for i = 1:size(BB,1)

        rectangle('Position',BB(i,:),'LineWidth',3,'LineStyle','-','EdgeColor','r');
   end

    %crop faces 
     for i = 1:size(BB,1)
        J= imcrop(img,BB(i,:));
        figure(3),subplot(2,2,i);imshow(J);
     end

person user3237134    schedule 11.03.2014    source источник


Ответы (1)


Вам нужен дополнительный цикл:

for index=1:1:obj.numberofframes
    img = read(mov,index);
    ... ...
    % do face detection and crop for 'img' here
    ... ...
end
person herohuyongtao    schedule 11.03.2014
comment
как насчет обрезки лица из мультифреймов?? - person user3237134; 12.03.2014
comment
@user3237134 user3237134 Просто выполните этот шаг для каждого img. - person herohuyongtao; 12.03.2014