how to calculate eigen vector, value using in pca??

6 visualizaciones (últimos 30 días)
pooja dixit
pooja dixit el 25 de Jun. de 2013
Respondida: Aashray el 14 de Feb. de 2025
hello everyone.... my topic is face recognition... but problem is that how to calculate pca and how to find eigen value & matrix.. if anyone have an idea and have a matlab code for related this tropic please help me...

Respuestas (1)

Aashray
Aashray el 14 de Feb. de 2025
Hello Pooja,
for performing PCA it is recommended to convert the images into greyscale to reduce the dimensionality.
Next, the covariance matrix can be found by directly using the MATLAB in-built function cov. This can then be used to find the eigen values and hence the principal components from the images.
You may refer to the following MATLAB code for more understanding:
% Load face images into a matrix (here X) where each column is a flattened image vector
imageDir = './cats';
imageFiles = dir(fullfile(imageDir, '*.jpg'));
numImages = length(imageFiles);
sampleImage = imread(fullfile(imageDir, imageFiles(1).name));
[imageHeight, imageWidth] = size(rgb2gray(sampleImage)); % Convert to grayscale
% I have used 100 images of size 64x64 for illustration, so X is 4096x100.
X = zeros(imageHeight * imageWidth, numImages);
for i = 1:numImages
img = imread(fullfile(imageDir, imageFiles(i).name));
if size(img, 3) == 3
img = rgb2gray(img);
end
X(:, i) = img(:);
end
% Centering the data by subtracting the mean face
mean_face = mean(X, 2);
X_centered = X - mean_face;
% Calculating the covariance matrix, and the eigenvectors and eigenvalues matrix
cov_matrix = cov(X_centered');
[eigenvectors, eigenvalues_matrix] = eig(cov_matrix);
% Extracting eigenvalues from the diagonal of the eigenvalues matrix
eigenvalues = diag(eigenvalues_matrix);
% Sorting eigenvalues in descending order, and the corresponding eigen vectors
[sorted_eigenvalues, index] = sort(eigenvalues, 'descend');
sorted_eigenvectors = eigenvectors(:, index);
k = 10; % Selecting the top k eigenvectors (as they represent the principal components)
principal_components = sorted_eigenvectors(:, 1:k);
The following links might be helpful for better understanding of “cov”,eig”, and “diag” functions:
You can also refer to the attached output for better understanding, the principal components variable is highlighted:

Categorías

Más información sobre Dimensionality Reduction and Feature Extraction en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by