<br />function demo()
clear all;
UpFilePath='E:\hollywood'; %最上层的地址
UpFileList=dir(UpFilePath);
upff=1;
for uprr=1:length(UpFileList) %得到顶层地址内部的文件夹名,存放在upfileFolder文件夹中,例如一个视频集文件有6个不同的类别,这一步就是得到这六个不同类比的名字
if(UpFileList(uprr).isdir==1&&~strcmp(UpFileList(uprr).name,'.')&&~strcmp(UpFileList(uprr).name,'..'))
upfileFolder{upff}=[UpFileList(uprr).name];
upff=upff+1;
end
end
for uprr=1:(upff-1) %轮询每一个类别的文件夹
FilePath=[UpFilePath,'\',upfileFolder{uprr}]; %确保输入正确的地址
FileList=dir(FilePath); %Filelist为单个类别的文件夹地址
ff=1;
for rr=1:length(FileList) %得到单个类别的文件夹内部的视频文件名,存放在fileFolder中
if(FileList(rr).isdir==0&&~strcmp(FileList(rr).name,'.')&&~strcmp(FileList(rr).name,'..'))
fileFolder{ff}=[FileList(rr).name];
ff=ff+1;
end
end
for rr=1:(ff-1) %保存每一个视频文件的名字
answer=strfind(fileFolder{rr},'.avi');
fileFoldername{rr}=fileFolder{rr}(1:answer-1);
end
for rr=1:(ff-1) %为每个视频单独建一个同名文件夹,将单个文件夹中的所有视频变为图片,图片名按照帧数编号
new_folder=[FilePath,'\',fileFoldername{rr}];
mkdir(new_folder);
movefile([FilePath,'\',fileFolder{rr}],[FilePath,'\',fileFoldername{rr}]);
mov=mmreader([FilePath,'\',fileFoldername{rr},'\',fileFolder{rr}]);
for i=1:mov.numberofframes
b=read(mov,i);
b=uint8(b);
imwrite(b,[FilePath,'\',fileFoldername{rr},'\',strcat(int2str(i),'.bmp')],'bmp');
end
end
for rr=1:(ff-1) %为每一帧图片找框,生成csv文件并且存放在类别的文件夹下
addpath([FilePath,'\',fileFoldername{rr}]);
img_dir = dir([FilePath,'\',fileFoldername{rr},'/*.bmp']);
num = length(img_dir);
output = zeros(num,5);
for i=1:num
output(i,:) = round(test(strcat(int2str(i),'.bmp'), 'person'));
%save 1.txt -ascii output
end
output(:,5)=[];
csvwrite([FilePath,'/',fileFoldername{rr},'.csv'],output);
end
end
end
%save 1.txt -ascii output