此代码检测面部并裁剪面部并将其存储在数据库文件夹中。数据库文件夹中缺少面部图像11和12。是什么原因?
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
答案 0 :(得分:1)
我注意到您对图像编制索引的错误。 BB
具有可变大小,因此您无法使用它来对索引进行线性化。而不是num2str(i+k*(size(BB,1)))
我将使用一个每次迭代递增的计数器。