rendered paste bodyfunction [F1real, F2real] = noisy_faces_hebb ()
%
F1 = rgb2gray (imread ('Cam.jpg'));
F2 = rgb2gray (imread ('DaveC.jpg'));
% bring to a single dimension
t1 = double (reshape (F1, 1, []));
t2 = double (reshape (F2, 1, []));
% normalize
p1 = create_noise (t1, 0.05) / norm (t1); % noise test
p2 = t2 / norm (t2);
% build full T and P matrices
T = cat (2, t1, t2);
P = cat (2, p1, p2);
W = T * P';
p1real = W * p1;
p2real = W * p2;
% adjust the contrast of the image
constant = norm (cat (1, p1real, p2real)) / norm (cat (1, t1, t2));
p1real = p1real / constant;
p2real = p2real / constant;
F1real = uint8 (reshape (p1real, 27, []));
F2real = uint8 (reshape (p2real, 27, []));
p1error = p1real - t1;
p2error = p2real - t2;
error1 = sum (abs (p1error (:))) / numel (p1error)
error2 = sum (abs (p2error (:))) / numel (p2error)
imshow (F1real);