eigenfaces : how to compute weights and how to classify new image
6 views (last 30 days)
Show older comments
hello i want to classify images use eigen faces i transposed the images of train set to eiganface but now i have issue of weights computation and classifiying new image
%%----------------------- % here the issue i am not sure % 1 computing the weights Image = sum(weights* eigenface) ? % 2 new image classification process ?**
//=================
% i have M=4 images N*N N=50
[ st.data{1} st.data{2} ; st.data{3} st.data{4} ];
% average image
for k=1:M
st.data{k} = im2single(st.data{k});
avImg =avImg + (1/M)*st.data{k};
end
%%normalize (remove mean)
for k=1:M
st.dataAvg{k} = st.data{k} -avImg;
end
%%generate A = [ img1(:) img2(:) ... imgM(:) ];
A = zeros(N*N,M);% (N*N)*M 2500*4
for k=1:M
A(:,k) = st.dataAvg{k}(:);
end
% covariance matrix small dimension (transposed)
C = A'*A;
%%eigen vectros in small dimension
[ Veigvec,Deigval ] = eig(C);% v 4*4 e 4*4 only diagonal 4 eigen values
% eigan face in large dimension A*veigvec is eigen vector of Clarge
Vlarge = A*Veigvec;% 2500*4*4*4 =2500 *4
% reshape to eigen face
eigenfaces=[];
for k=1:M
c = Vlarge(:,k);
eigenfaces{k} = reshape(c,N,N);
end
x=diag(Deigval);
[xc,xci]=sort(x,'descend');% largest eigenval
* **%%-----------------------
% here the issue i am not sure
% 1 computing the weights Image = sum(weights* eigenface) ?
% 2 new image classification process ?** *
%%weights
for mi=1:M % image number
for k=1:2 % eigen face for coeff number
wi(mi,k) = sum(A(:,mi).* eigenfaces{xci(k)}(:)) ;
end
end
%%classify new img mic
testFaceMic = imread('C:\Users\michaels.DSI\Desktop\faces\class\mic3.jpg','jpg');
testFaceMic =rgb2gray(testFaceMic);
testFaceMic = imresize(testFaceMic,[N N]);
testFaceMic = im2single(testFaceMic);
Aface = testFaceMic(:)-avImg(:);
w1face = sum(Aface.* eigenfaces{xci(1)}(:)) ;
w2face = sum(Aface.* eigenfaces{xci(2)}(:)) ;
0 Comments
Answers (0)
See Also
Categories
Find more on Feature Detection and Extraction in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!