0
votes

I currently have a program using MATLAB where we have to perform face recognition on images in folders Training_images and Testing_images. I have written the code to do turn these images into a matlab database:

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 

end

Then when I run the code it will be something like:

>>dbWink = buildImagesDB('Testing\', 'person', 'wink.gif', 10, 'names.txt');

However I need to modify the code so it does not take a .txt file to get the names, instead it gets it from each individual file name dynamically eg. Steven_happy, Michael_happy etc, so from my understanding this means the 'subject' field will need to be changed too so that the filenames are not fixed with a subject prefix ie. person1.wink I am unsure how to do this with MATLAB so any help would be greatly appreciated. Thanks, Mark

1

1 Answers

0
votes

You should look at the following Matlab commands

  • dir: lists files in a certain directory, for example names=dir('*.jpg'); gives you an array with names(ii).name is the file name of the ii-th jpg file.
    • [fileparts]: given the file name it can break it into path, name and extension.