% folder of vl_kmeans needs to be included
addpath(genpath('./vlfeat-0.9.20/toolbox/mex')); % add all subfolders in the given folder
im = rgb2gray(imread('AlfredoBorba_TuscanLandscape.jpg'));

block_side_length = [4 8 16];
cluster_num = [10 25 50];
[block, cluster] = meshgrid( block_side_length, cluster_num );
grid_size = size( cluster, 1 ) * size( block, 2 );

figure(1)
for i = 1:grid_size
    
    subplot(3,3,i)
    [codebook, index_vector, num_of_rows, num_of_cols ] = encoder(im, block(i), cluster(i));
    imshow(decoder(codebook, index_vector, num_of_rows, num_of_cols))
    
    % Calculating compression ratio and print title
    image_size = size(im(:),1);
    codebook_size = size(codebook,1)*size(codebook,2);
    index_size = size(index_vector,2);
    title(sprintf(['blocksize: ', num2str(block(i)), 'x', num2str(block(i)), ', clusternum: ', num2str(cluster(i)), ...
        '\ncompression: ', num2str(image_size/(codebook_size+index_size)), 'x' ]))
    
end

% Lábjegyzet: Nem tudhatom, hogy mi volt a feladat kiírójának célja amikor
% a sorfolytonos olvasást megkövetelte a blokkok sorrendjénél. Ha az volt,
% hogy megkeserítse a szegény hallgatók életét, és lassú és csúnya for
% ciklusos megoldást kényszerítsen ki belőlük, akkor sikerült neki... >:(

