Class Distance:

Compute matrix of pairwise distances between photographs.

Contents

Given a set of jpg-images in the directory PictureDir, load them, vectorize them and compute their pairwise distance.

% Close all previous figures
	close all

% Edit PictureDir so that it contains the full location of the pictures
	PictureDir = '~/Google Drive/Teaching/';
	%PictureDir = '~/Teaching/MA211/TestPics/';

% Search for all (JPEG) files ending with a .jpg
	Pics = dir([PictureDir,'*.jpg']);

% Resize all pictures to a common size
	% Remove the division by 10 to make larger
	r = 600/10; % Number of rows in new resized picture
	c = 450/10; % Number of cols in new resized picture

Loop through each picture, load it into memory and view it

	for n=1:length(Pics)
			% Load and resize the image one by one
			Im = imresize(imread([PictureDir,Pics(n).name]),[r,c]);
			% Vectorize the image
			PicVex(:,n) = double(reshape(Im,r*c*3,1));
			% Display the vector as an image
			imshow(reshape(uint8(PicVex(:,n)),r,c,3))
			% Label the image
			xlabel(['Person ',num2str(n),],'FontSize',15);
			pause
	end

Create a distance matrix of norms between each pair of pictures and plot the difference between two pictures

	%figure; hold on;
	k = 1;
	s = length(Pics);
	for p=1:s
			for q=1:s
					DistanceMatrix(p,q) = norm(PicVex(:,p)-PicVex(:,q));
					% Uncomment the two lines below (remove %) to plot
					%subplot(s,s,k)
					%imshow(reshape(uint8(PicVex(:,p)+PicVex(:,q)),r,c,3))
					k = k+1;
			end
	end