Question

This code detect faces and crop the faces and stores them in database folder.Face image 11 and 12 are missing in database folder. what is the reason?

clc;
clear all;
%read video file
obj=vision.VideoFileReader('basu_converted.avi');

%read frame by frame
for k=1:100

         videoFrame      = step(obj);

         FaceDetect = vision.CascadeObjectDetector;%using viola jones algorithm

         BB = step(FaceDetect,videoFrame);

         figure(1),imshow(videoFrame)


     for i = 1:size(BB,1)

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

      end

     %crop and save detected face images
     for i = 1:size(BB,1)

     J= imcrop(videoFrame,BB(i,:));
     I=rgb2gray(imresize(J,[292,376]));

     filename = ['G:\matlab_installed\bin\database\' num2str(i+k*(size(BB,1))) '.jpg'];
     imwrite(I,filename);

    end


end
Was it helpful?

Solution

I noticed a error you made indexing the images. BB has a variable size, thus you can't use it to linearise the indices. Instead of num2str(i+k*(size(BB,1))) I would use a counter which is incremented each iteration.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top