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