AR人脸库,包含50位男性和50位女性,每人26张共2600张图。
但是网上下载的AR人脸库并没有进行分类,而是2600张图在一个文件夹中,本示例在matlab里编程实现将2600张人脸图分类为编号为s1~s100的100类,每类26张人脸图,前50类为男性,后50类为女性。即每人归为一类,类中图片序号为1到26。程序示例如下:
function[ ] = imgClass( ) %----------------------2017-4-22--------------------------%%此函数实现将AR人脸库中的2600幅.pgm人脸图像以每人为一类分为100类%前50类为男性,后50位为女性%100类分别编号为s1~s100%类中每人的26幅图分别编号为1到26%其中AR人脸库位于当前路径.\AR人脸库\AR 下%----------------------2017-4-22--------------------------%%-读取指定目录下面所有的 .pgm 格式图片 pgms=dir('.\AR人脸库\AR\*.pgm'); num_pgms=length(pgms)/26; %num_pgms为100,每人26张图,100个人%两重循环,外层1到100人,内层每人的26幅图for i = 1 : num_pgmsmyRoot=strcat('.\AR人脸库\AR\', strcat('s',num2str(i)));mkdir(myRoot); %创建路径,s1-s100for j=1:26bmp_file = fullfile( '.\AR人脸库\AR\' ,pgms(26*(i-1)+j).name); %循环读每一张图片pgm = imread(bmp_file); %每类中生成新的文件名,1-26.pgmfilename = strcat(num2str(j), '.pgm' ); pgm_file = fullfile(myRoot, filename); % 将pgm格式图片以pgm_file为路径存在电脑硬盘上 imwrite( pgm ,pgm_file); endend
AR人脸库(原始)
AR人脸库(改写后)