Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How can i remove the error "CreateDatabase Error using CreateDatabase (line 22) Not enough input arguments. "

Asked by Madhu on 15 May 2013
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: aomidvar@ece.ut.ac.ir                  
%%%%%%%%%%%%%%%%%%%%%%%% File management
TrainFiles = dir(TrainDatabasePath);
Train_Number = 0;
for i = 1:size(TrainFiles,1)
    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
%%%%%%%%%%%%%%%%%%%%%%%% 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 = strcat('\',str,'.jpg');
      str = strcat(TrainDatabasePath,str);
      img = imread(str);
      img = rgb2gray(img);
      [irow icol] = size(img);
      temp = reshape(img',irow*icol,1);   % Reshaping 2D images into 1D image vectors
      T = [T temp]; % 'T' grows after each turn                    
  end

0 Comments

Madhu

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 15 May 2013

You need to pass a value in when you run the function. You cannot just run this function by pressing F5 or selecting Run from the menu. You can invoke it from the command line,

   result = CreateDatabase('C:\myfiles\mydatabase');

or you can have a call like that in another routine.

0 Comments

Walter Roberson

Contact us