% Tato funkce slouzi k eliminaci nerovnomerne iluminace.

function [obr_upraveny,maska] = iluminace(obr)

obr=double(obr);

%% urceni modelu pozadi pouzitim prumerovaciho maskoveho operatoru
velikost=51;
H=ones(velikost,velikost)/velikost^2;
obr_rozmaz=conv2(obr,H,'same');
obr_rozmaz=obr_rozmaz/max(max(obr_rozmaz));

%% odstraneni multiplikativniho zkresleni a naslednych artefaktu
maska = zeros(size(obr));
maska(obr>5) = 1;
maska=bwmorph(maska,'erode',2);
maska=bwmorph(maska,'dilate',5);
maska=bwmorph(maska,'erode',10);

obr_upraveny=obr./obr_rozmaz;
obr_upraveny=obr_upraveny.*maska;
obr_upraveny=255*obr_upraveny/max(max(obr_upraveny));
obr_upraveny=uint8(obr_upraveny);

end
