我目前有一个使用MATLAB的程序,我们必须对文件夹Training_images和Testing_images中的图像进行人脸识别。我编写了代码来将这些图像转换为matlab数据库:
function database = buildImagesDataBase(directory, Imageprefix, extension, maxN, namesFile)
database = initDB(maxN);
names = readImgInfo([directory namesFile]);
for i=1:1:maxN
imgFileName = [directory, Imageprefix, num2str(i), '.', extension];
database(i).name = names{i};
database(i).rgb = imread(imgFileName);
if ( length(size(database(i).rgb)) == 3)
database(i).gray = rgb2gray(database(i).rgb);
else
database(i).gray = database(i).rgb;
end;
database(i).grayCrop = cropHead(database(i).gray);
database(i).grayResize = imresize(database(i).grayCrop, [84 64]);
database(i).dataVect = database(i).grayResize(:);
end
端
然后,当我运行代码时,它将类似于:
>>dbWink = buildImagesDB('Testing\', 'person', 'wink.gif', 10, 'names.txt');
但是我需要修改代码,因此它不需要.txt文件来获取名称,而是从每个单独的文件名中动态获取它,例如。 Steven_happy,Michael_happy等,所以根据我的理解,这意味着'主题'字段也需要更改,以便文件名不固定主题前缀即。 person1.wink 我不确定如何使用MATLAB做到这一点,所以任何帮助将不胜感激。 谢谢, 标记
答案 0 :(得分:0)
您应该查看以下Matlab命令
dir
:列出某个目录中的文件,例如names=dir('*.jpg');
为您提供一个数组names(ii).name
是ii
个jpg文件的文件名。<登记/>
fileparts
]:根据文件名,它可以将其分解为路径,名称和扩展名。