first commit with current lessons
This commit is contained in:
29
09-29/eigenfaces/interactiverec.m
Executable file
29
09-29/eigenfaces/interactiverec.m
Executable file
@ -0,0 +1,29 @@
|
||||
function interactiverec(F)
|
||||
% given a 243x320 image F, displays it as sum of components
|
||||
stdsize=[243,320];
|
||||
|
||||
F = F(:);
|
||||
|
||||
if not(numel(F) == prod(stdsize))
|
||||
error('The first argument must be the picture to reconstruct');
|
||||
end
|
||||
|
||||
X=readyalefaces_to_tensor;
|
||||
X=reshape(X,[prod(stdsize),numel(X)/prod(stdsize)]);
|
||||
avg=mean(X,2);
|
||||
Xs=bsxfun(@minus,X,avg);
|
||||
[U,S,V]=svd(X,0);
|
||||
colormap(gray);
|
||||
ncolors=size(gray,1);
|
||||
h = image(reshape(avg,stdsize)*ncolors);
|
||||
|
||||
% Add a slider
|
||||
uicontrol('Style', 'slider', 'Min', 0, 'Max', size(U,2), ...
|
||||
'Callback', @callback,'Position',[10 0 300 20]);
|
||||
|
||||
function callback(src,evt)
|
||||
d=round(get(src, 'Value'))
|
||||
set(h, 'CData', reshape(ncolors*(avg+U(:,1:d)*(U(:,1:d)'*F)),stdsize));
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user