CreateDatabase.m
上传用户:netsea168
上传日期:2015-08-07
资源大小:617k
文件大小:2k
源码类别:

图形图象

开发平台:

Matlab

  1. function T = CreateDatabase(TrainDatabasePath)
  2. % Align a set of face images (the training set T1, T2, ... , TM )
  3. %
  4. % Description: This function reshapes all 2D images of the training database
  5. % into 1D column vectors. Then, it puts these 1D column vectors in a row to 
  6. % construct 2D matrix 'T'.
  7. %  
  8. % Argument:     TrainDatabasePath      - Path of the training database
  9. %
  10. % Returns:      T                      - A 2D matrix, containing all 1D image vectors.
  11. %                                        Suppose all P images in the training database 
  12. %                                        have the same size of MxN. So the length of 1D 
  13. %                                        column vectors is MN and 'T' will be a MNxP 2D matrix.
  14. %
  15. % See also: STRCMP, STRCAT, RESHAPE
  16. % Original version by Amir Hossein Omidvarnia, October 2007
  17. %                     Email: aomidvar@ece.ut.ac.ir                  
  18. %%%%%%%%%%%%%%%%%%%%%%%% File management
  19. TrainFiles = dir(TrainDatabasePath);
  20. Train_Number = 0;
  21. for i = 1:size(TrainFiles,1)
  22.     if not(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumbs.db'))
  23.         Train_Number = Train_Number + 1; % Number of all images in the training database
  24.     end
  25. end
  26. %%%%%%%%%%%%%%%%%%%%%%%% Construction of 2D matrix from 1D image vectors
  27. T = [];
  28. for i = 1 : Train_Number
  29.     
  30.     % I have chosen the name of each image in databases as a corresponding
  31.     % number. However, it is not mandatory!
  32.     str = int2str(i);
  33.     str = strcat('',str,'.jpg');
  34.     str = strcat(TrainDatabasePath,str);
  35.     
  36.     img = imread(str);
  37.     img = rgb2gray(img);
  38.     
  39.     [irow icol] = size(img);
  40.    
  41.     temp = reshape(img',irow*icol,1);   % Reshaping 2D images into 1D image vectors
  42.     T = [T temp]; % 'T' grows after each turn                    
  43. end