%% Kép betöltése
im = imread('AlfredoBorba_TuscanLandscape.jpg');
im = imresize(im, 0.3);
gray_im = double(rgb2gray(im));

%% Itt csak a konvolúció sebességét mérem, itt nem normálok
kernel = fspecial('laplacian');
% Saját konvolúció
disp('Saját konvolució');
for i = 1:5
    tic
    out = myConv(gray_im, kernel);
    toc
end
% Beépített konvolúció
disp('Beépített konvolució');
for i = 1:5
    tic
    out = conv2(gray_im, kernel);
    toc
end

%% Itt normálom a képet, hogy megjeleníthető legyen, és elmentem
normalo = max(max(out)) / 255;
out = uint8(out ./ normalo);
imwrite(out, 'AlfredoBorba_TuscanLandscape_out.jpg');

%% Innentől pedig kipróbálom a többi szűrőt is
kernels = {
    fspecial('average'), ...
    fspecial('gaussian'), ...
    fspecial('prewitt'), ...
    fspecial('prewitt')', ...
    fspecial('laplacian',0.2), ...
    [0 1 0; 1 -4 1; 0 1 0], ...
    conv2(fspecial('laplacian',0.2), fspecial('gaussian')), ...
    [0 -1 0; -1 5 -1; 0 -1 0]
};

figure(1);
subplot(3,3,1);
imshow(uint8(gray_im)); 
for i = 1:8
    out = conv2(gray_im, kernels{i});
    normalo = max(max(out)) / 255;
    out = uint8(out ./ normalo);
    subplot(3,3,i+1);
    imshow(out);
end
