%% Pořízení snímků při změně pozice kamer
% Následující skript slouží k pořízení snímků k prostorové rekonstrukci ze
% dvou webkamer při změně jejich pozice. Po spuštění programu je uživatel
% vyzván k zadání celkového počtu sad snímků. Při stisknutí klávesy 'enter'
% se pořizují snímky. Pokud je před stisknutím klávesy předán libovolný
% znak, následující snímek bude uložen do další sady.
%
% Požadované skripty:
%    1. žádné
%
% Požadované toolboxy:
%    1. žádné
%
% Vytvořeno v rámci bakalářské práce na téma Vytvoření 3D modelu za pomoci 
% laserového vzoru.
% Martin Krátký
% Vysoké učení technické v Brně
% Květen 2019
% Práce je dostupná na webové adrese:
% https://www.vutbr.cz/studenti/zav-prace/detail/119313 
%

clear variables
close all

%% Definice kamer
camList = webcamlist;
camRight = webcam(1);
camLeft = webcam(2);

preview(camRight)
preview(camLeft)

mkdir camRight
mkdir camLeft

imgR = {0};
imgL = {0};

%% Požizování snímků
n = str2num(input('Zadej počet sad snímků: ', 's'));
set = zeros(1,n);
j=1;
s='';
for i = 1:numel(set)
    k=0;
    fprintf('Po stisku se pořídí první snímek sady č. %d \n', i);
    s='';
    while strcmp(s,'') % Cyklus se ukončí, jakmile se předá jakýkoliv znak
          s = input(' ','s'); 
        imgR{j} = snapshot(camRight);
        imgL{j} = snapshot(camLeft);

        fprintf('Snímky č. %d pořízeny\n', j);
        fileNameR = sprintf('snapR%d.jpg',j);
        imwrite(imgR{j},fileNameR)
        movefile(fileNameR,'camRight')
        fileNameL = sprintf('snapL%d.jpg',j);
        imwrite(imgL{j},fileNameL)
        movefile(fileNameL,'camLeft')
        j=j+1;
        k=k+1;
    end
    set(i)=k;
end
%% Destrukce

clear camRight
clear camLeft