How to remove this error in this code? This code is for face recognition using principal component analysis

조회 수: 1 (최근 30일)
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
% See also: STRCMP, STRCAT, RESHAPE
% Original version by Amir Hossein Omidvarnia, October 2007
% 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
if true
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
Error in CreateDatabase (line 2)
functions T = CreateDatabase(TrainDatabasePath)
>> CreateDatabase
Error using CreateDatabase (line 23)
Not enough input arguments.
Please help me in this code..Thanks in advance
  댓글 수: 2
surya surya
surya surya 2017년 9월 16일
편집: Walter Roberson 2017년 9월 17일
CreateDatabase('C:\Prgram Files\MATLAB\R2009b\work\face recognition');
use in this format instead of that
Rakesh Kashyap
Rakesh Kashyap 2017년 11월 3일
How to give the path of image as an argument to createdatabase function?

댓글을 달려면 로그인하십시오.

답변 (1개)

Image Analyst
Image Analyst 2017년 9월 17일
Well, eveidently it wants another input argument. Why don't you just simply supply all the input arguments that it requires? You can't do this:
>> CreateDatabase
Error using CreateDatabase (line 23)
Not enough input arguments.
Look at the definition. CreateDatabase() requires a string that is a folder as an input. You did not supply that -- you just called it without supplying ANY arguments. Why didn't you supply the folder that it wants???
  댓글 수: 2
Sindhuja Chaduvula
Sindhuja Chaduvula 2021년 6월 7일
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('\Users\prasanth\Downloads\MATLAB code 3\database2\');
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 = [];
%disp(Train_Number);
for i = 1 : Train_Number-1
% I have chosen the name of each image in databases as a corresponding
% number. However, it is not mandatory!
str = int2str(i);
str = strcat(char(str),'.jpg');
str = strcat(TrainDatabasePath,str);
% display(str);
img = imread(str);
img = im2gray(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
end
>> CreateDatabase
ans =
[]

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Display Point Clouds에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by