获取AR图像集
获取图像集的博客
我下载的是
得到的是
需要进行变换
bmp变pgm
bmp格式变pgm格式博客
这里也附上代码
function[ ] = bmp2pgm( )
%读取指定目录下面所有的 bmp 格式图片
bmps = dir('C:\Users\25643\Desktop\AR_warp\bmp\*.bmp');
num_bmps = length( bmps );
for i = 1 : num_bmps
bmp_file = fullfile( 'C:\Users\25643\Desktop\AR_warp\bmp\' , bmps(i).name );
bmp = imread(bmp_file);
% 第一步,解析文件名 bmp_file,bmp_file包括路径+文件名+后缀,
% 如 bmp_file = '.\ORL人脸数据库\s1\1.bmp'
% path = '.\ORL人脸数据库\s1' name = '1' ext = '.bmp'
[ path , name , ext ] = fileparts( bmp_file ) ;
% 第二步,生成新的文件名
filename = strcat( name , '.pgm' );
% 第三步,生成文件全称
pgm_file = fullfile( 'C:\Users\25643\Desktop\AR_warp\pgm\' , filename ) ;
% 第四步,将 bmp 以 pgm_file 作为文件名,保存为 pgm 格式。
imwrite( bmp , pgm_file , 'pgm' );
end
end
可以得到
数据集分类
分类博客
同样的附上代码
%<span style="font-family:'KaiTi_GB2312';font-size:18px;">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('C:\Users\25643\Desktop\AR_warp\pgm\*.pgm');
num_pgms=length(pgms)/26; %num_pgms为100,每人26张图,100个人
%两重循环,外层1到100人,内层每人的26幅图
for i = 1 : num_pgms
myRoot1=strcat('C:\Users\25643\Desktop\AR_warp\train\', strcat('s',num2str(i)));
mkdir(myRoot1); %创建路径,s1-s100
for j=1:26
bmp_file = fullfile( 'C:\Users\25643\Desktop\AR_warp\pgm\' ,pgms(26*(i-1)+j).name);
%循环读每一张图片
pgm = imread(bmp_file);
%每类中生成新的文件名,1-26.pgm
filename1 = strcat(num2str(j), '.pgm' );
pgm_file1 = fullfile(myRoot1, filename1);
% 将pgm格式图片以pgm_file为路径存在电脑硬盘上
imwrite( pgm ,pgm_file1);
end
end
跑出来的结果:
最后可以得到