% V tomto skriptu vyuzijeme funkce konvoluce, ktera je v souboru
% konvoluce.m. Volanim teto funkce s prislusnymi maskami otestujeme jejich
% chovani.

% Nacteni obrazku
obrazek = imread('obrazek.jpg');

% Prevedeni do stupnu sede
try 
    % Pokud by obrazek jiz byl ve stupnich sede, tak by program zhavaroval.
    % Da se nahradit treba zjistenim rozmeru a podminkou pro rozmer matice. 
    obrazek = rgb2gray(obrazek);
end


% Vytvoreni ruznych masek

% prumer: rozostri obrazek
maska1 = [1 1 1; 1 1 1; 1 1 1] *1/9;

% gauss: rozostri obrazek
maska2 = [1 2 1; 2 4 2; 1 2 1] *1/16;

% laplace: vytahne z obrazku pouze hrany
maska3 = [0 1 0; 1 -4 1; 0 1 0];

% zvyrazni hrany v obrazku
maska4 = [0 -1 0; -1 5 -1; 0 -1 0] *1/1;

% zvyrazni pouze svisle hrany v obrazku
maska5 = [-1 0 1; -2 0 2; -1 0 1];

% zvyrazni pouze vodorovne hrany v obrazku
maska6 = [-1 -2 -1; 0 0 0; 1 2 1];


% Zobrazeni obrazku po konvoluci s danou maskou
figure; imshow(konvoluce_reseni(obrazek, maska1));

figure; imshow(konvoluce_reseni(obrazek, maska2));

figure; imshow(konvoluce_reseni(obrazek, maska3));

figure; imshow(konvoluce_reseni(obrazek, maska4));

figure; imshow(konvoluce_reseni(obrazek, maska5));

figure; imshow(konvoluce_reseni(obrazek, maska6));

% konec

