% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	MPOV - uloha 5 - ostreni objektivu	
%
%
%	- otevre komunikaci s pripojenou kamerou, otevre komunikaci
%	  se zarizenim CanonEF po seriove lince
%	- naprogramujte automaticke ostreni pomoci hledani globalniho
%	  maxima jakosti obrazu	
%
%	
%	verze: 9-2023 / vision.uamt.feec.vutbr.cz
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% uklid
clear all;
close all;
clc;

% kamera
imaqreset;
pause(2);
kam = videoinput('winvideo',1);
kam.ReturnedColorSpace = 'grayscale';
triggerconfig(kam,'manual');
param = getselectedsource(kam);
param.ExposureMode = 'manual';
param.Exposure = -2;
param.GainMode = 'manual';
param.Gain = 200;

% nahled videa pro nastaveni
preview(kam);
pause(1);
pause;
closepreview(kam);
pause(1);


% ZACNETE PROGRAMOVAT ZDE >>>
% ... doplnte otevreni seriove linky

% smycka zpracovani obrazu
figure, hold on;
start(kam);

% ZACNETE PROGRAMOVAT ZDE >>>
% ... upravte pocet kroku

for n = 1:10
    
    % ... nastaveni zaostreni - doplnte...
    
    % porizeni snimku
    img = getsnapshot(kam);
    % ... podvzorkovani
    img = img(1:4:end,1:4:end,:);

    % vykresleni vysledku
    imshow(img);
    pause(0.1);

    % ... vyhodnoceni ostrosti/jakosti obrazu - doplnte...
    
end;


% ZACNETE PROGRAMOVAT ZDE >>>
% ... vykreslete prubeh ostrosti/jakosti obrazu
% ... zaostrete na globalni maximum
% ... uzavrete seriovou linku


% uzavreni kamery
stop(kam);
delete(kam);
