data = rgb2gray(imread ('me.jpg')) ;
[r , c ]= size ( data ) ;
m = mean ( data')';
d = double ( data ) - repmat (m ,1 , c ) ;
co =1 / (c -1) * d *d';
[ eigvec , eigvl ]= eig ( co ) ;
eigvalue = diag ( eigvl ) ;
[ junk , index ] = sort ( - eigvalue ) ;
eigvalue = eigvalue ( index );
eigvec = eigvec (: , index ) ;
for i =1:1:10
Compressed_Image = eigvec (: ,1:( i /100) * size ( eigvec ,2) )'*double ( d ) ;
ReConstructed_Image = ( eigvec (: ,1:( i /100) * size ( eigvec ,2) ) ) * Compressed_Image + repmat (m ,1 , c );
imshow ( uint8 ( ReConstructed_Image ) )
pause (1)
end