+++++++++++++++++++++++++++++++++++++++++++++++++
+++  synthetic_dataset_cows_2 = bez měřítka, uspořádaně +++
+++++++++++++++++++++++++++++++++++++++++++++++++
normSizes:				valid data
60x [16,19,22,25,28,31,34,37]			6x
140x [16,19,22,25,28,31,34,37,40,43]		14x

200x [49,55,61,67,73]			20x
60x [12,14]				6x
14x [10]					4x


%****** PARAMETRY VYGENEROVANÝCH OBRÁZKŮ ******
numObjectsPerClassMin = [100,0,0]; % minimální počet objektů z každé třídy (vektor)
numObjectsPerClassMax = [200,0,0]; % maximální počet objektů z každé třídy (vektor) 
backgroundSize = [224, 224]; % velikost výsledných obrázků (ŠÍŘKA,VÝŠKA)

%****** NORMALIZOVANÁ VELIKOST ******
doSizeNorm = true; % pokud true, změní rozměr rámečku všech objektů na předdefinovanou hodnotu "normalizedSize"
normalizedSize = normSizes(jj); % Pokud doSizeNorm == true, plocha rámečku vymezujícího objekt se normalizuje na X^2, až poté augmentace

%****** ROZMÍSTĚNÍ ******
options.maxOverlapBackground = 0.05; % kolsikatina objektu se smí překrývat s pozadím
options.maxOverlapObjects = 0.03; % kolikatina objektu se smí překrývat s ostatními objekty

%****** AUGMENTACE ******
% pozadí
backgroundScaleGeneralRange = [0.25, 0.25];
backgroundScaleWidthRange = [0.9, 1]; % rozsah změny šířky pozadí před výřezem (násobek původní šířky)
backgroundScaleHeightRange = [0.9, 1]; % rozsah změny výšky pozadí před výřezem (násobek původní výšky)

% objektu
rotateAngleMax = 180; % maximální úhel natočení do každé strany
objectScaleGeneralRange = [0.9, 1.1];
objectScaleWidthRange = [0.9, 1.0]; % rozsah změny šířky objektu (násobek původní šířky)
objectScaleHeightRange = [0.9, 1.0]; % rozsah změny výšky objektu (násobek původní výšky)

% pozadí i objektu
contrast = 0.2; % změna kontrastu  (rozumné do 0.3)
hue = 0.007; % výrazná změna barvy   (rozumné do 0.01)
saturation = 0.07; % změna saturace (rozumné do 0.1)
brightness = 0.07; % změna jasu     (rozumné do 0.1)
% set hyperparametrs for generation. Reasonable values shown in []
minTries = 30; % [5 - 20] % maximum amount of tries to investigate the best positon for a new object
maxTries = 30; % [5 - 30] % maximum amount of tries to place a new object
randomlyPlacedObjects = 5; % [1 - 5] % amount of objects placed before grouping the objects
shiftJiggle = 0.7; % [0.5 - 1.0] % in jiggling process, shift by multiple of the object's size to a side. Higher values offer better placement but only with much higher amount of tries.
maxFailScore = 3; % [1 - 3] % maximum amout of failed placements with a reference object on one side




++++++++++++++++++++++++++++++++++++++++++++++
+++  synthetic_dataset_cows_2 = bez měřítka, náhodně +++
++++++++++++++++++++++++++++++++++++++++++++++
normSizes:				valid data
60x [16,19,22,25,28,31,34,37]			6x
140x [16,19,22,25,28,31,34,37,40,43]		14x
200x [49,55,61,67,73]			20x
60x [12,14]
36x [10]


%****** PARAMETRY VYGENEROVANÝCH OBRÁZKŮ ******
numObjectsPerClassMin = [100,0,0]; % minimální počet objektů z každé třídy (vektor)
numObjectsPerClassMax = [200,0,0]; % maximální počet objektů z každé třídy (vektor) 
backgroundSize = [224, 224]; % velikost výsledných obrázků (ŠÍŘKA,VÝŠKA)

%****** NORMALIZOVANÁ VELIKOST ******
doSizeNorm = true; % pokud true, změní rozměr rámečku všech objektů na předdefinovanou hodnotu "normalizedSize"
normalizedSize = normSizes(jj); % Pokud doSizeNorm == true, plocha rámečku vymezujícího objekt se normalizuje na X^2, až poté augmentace
% ### TODO ### rozptyl

%****** ROZMÍSTĚNÍ ******
options.maxOverlap = 0.05; % kolsikatina objektu se smí překrývat s pozadím a ostatními objekty současně

%****** AUGMENTACE ******
% pozadí
backgroundScaleGeneralRange = [0.25, 0.25];
backgroundScaleWidthRange = [0.9, 1]; % rozsah změny šířky pozadí před výřezem (násobek původní šířky)
backgroundScaleHeightRange = [0.9, 1]; % rozsah změny výšky pozadí před výřezem (násobek původní výšky)

% objektu
rotateAngleMax = 180; % maximální úhel natočení do každé strany
objectScaleGeneralRange = [0.9, 1.1];
objectScaleWidthRange = [0.9, 1.0]; % rozsah změny šířky objektu (násobek původní šířky)
objectScaleHeightRange = [0.9, 1.0]; % rozsah změny výšky objektu (násobek původní výšky)

% pozadí i objektu
contrast = 0.2; % změna kontrastu  (rozumné do 0.3)
hue = 0.007; % výrazná změna barvy   (rozumné do 0.01)
saturation = 0.07; % změna saturace (rozumné do 0.1)
brightness = 0.07; % změna jasu     (rozumné do 0.1)

%****** PARAMETRY GENEROVÁNÍ ******
maxTries = 20; % maximum number of objects that failed placing into a background. Move to next image after that.




++++++++++++++++++++++++++++++++++++++
+++  SYNT_HERD = s měřítkem, uspořádaně +++
++++++++++++++++++++++++++++++++++++++
normSizes				valid
50x [7,9,11:32,34:2:50,8:24,12:19,13,15];		5x


%****** PARAMETRY VYGENEROVANÝCH OBRÁZKŮ ******
numGeneratedImages = 1; % počet vygenerovanách obrázků
startingIndex = 3001 + (jj-1) * numGeneratedImages; % číslo v názvu, od kterého se zapisují obrázky. Vhodné, generuji-li další data pro již existující dataset.
numObjectsPerClassMin = [1,0,0]; % minimální počet objektů z každé třídy (vektor, pořadí tříd dáno abecedně v adresáři 'classes')
numObjectsPerClassMax = [1000,0,0]; % maximální počet objektů z každé třídy (vektor, pořadí tříd dáno abecedně v adresáři 'classes') 
doRealisticSizes = true; % pokud true, vkládá méně velkých objektů než malých, úměrně velikosti. Předhcozí 2 limity počtu objektů platí pro nejmenší objekt a jsou škálovány pro větší.
doLogDistribution = true; % pokud true, počet objektů vybrán náhodně v logaritmickém prostoru => vyzdvihuje menší počty objektů
backgroundSize = [224, 224]; % velikost výsledných obrázků (ŠÍŘKA,VÝŠKA)

%****** NORMALIZOVANÁ VELIKOST ******
doSizeNorm = true; % pokud 'true', změní rozměr rámečku všech objektů na předdefinovanou hodnotu "normalizedSize", poté augmentace
normalizedSize = normSizes(jj); % Pokud doSizeNorm == true, plocha rámečku vymezujícího objekt se normalizuje na X^2, až poté augmentace

%****** ROZMÍSTĚNÍ ******
options.maxOverlap = 0.05; % kolikatina objektu se smí překrývat s pozadím a ostatními objekty současně

%****** AUGMENTACE ******
% pozadí 
backgroundRealisticScale = true; % (POUZE PRO doSizeNorm = true). Pokud 'true' mění velikost pozadí vzhledem k normalizované velikosti objektů. Ignoruje proměnnou backgroundScaleGeneralRange.
backgroundRealisticObjectSize = 90; % (POUZE PRO doSizeNorm = true). Velikost objektu v pixelech, kterou by objekt zabíral na původním obrázku pozadí (měřítko = 1)
backgroundScaleGeneralRange = [0.25, 0.25]; % rozsah celkové změny rozměrů pozadí
backgroundScaleWidthRange = [1, 1.2]; % rozsah změny šířky pozadí před výřezem (násobek původní šířky)
backgroundScaleHeightRange = [1, 1.2]; % rozsah změny výšky pozadí před výřezem (násobek původní výšky)

% objektu
rotateAngleMax = 180; % maximální úhel natočení do každé strany
objectScaleGeneralRange = [0.9, 1.1]; % rozsah celkové změny rozměrů objektu
objectScaleWidthRange = [0.9, 1.0]; % rozsah změny šířky objektu (násobek původní šířky)
objectScaleHeightRange = [0.9, 1.0]; % rozsah změny výšky objektu (násobek původní výšky)

% pozadí i objektu
contrast = 0.2; % změna kontrastu  (rozumné do 0.3)
hue = 0.007; % výrazná změna barvy   (rozumné do 0.01)
saturation = 0.07; % změna saturace (rozumné do 0.1)
brightness = 0.07; % změna jasu     (rozumné do 0.1)

%****** PARAMETRY GENEROVÁNÍ ******
maxTries = 20; % maximum number of objects that failed placing into a background. Move to next image after that.




++++++++++++++++++++++++++++++++++++++
+++  SYNT_RANDOM = s měřítkem, náhodně +++
++++++++++++++++++++++++++++++++++++++
normSizes				valid
50x [7,9,11:32,34:2:50,8:24,12:19,13,15];		5x


%****** PARAMETRY VYGENEROVANÝCH OBRÁZKŮ ******
numGeneratedImages = 1; % počet vygenerovanách obrázků
startingIndex = 3001 + (jj-1) * numGeneratedImages; % číslo v názvu, od kterého se zapisují obrázky. Vhodné, generuji-li další data pro již existující dataset.
numObjectsPerClassMin = [1,0,0]; % minimální počet objektů z každé třídy (vektor, pořadí tříd dáno abecedně v adresáři 'classes')
numObjectsPerClassMax = [1000,0,0]; % maximální počet objektů z každé třídy (vektor, pořadí tříd dáno abecedně v adresáři 'classes') 
doRealisticSizes = true; % pokud true, vkládá méně velkých objektů než malých, úměrně velikosti. Předhcozí 2 limity počtu objektů platí pro nejmenší objekt a jsou škálovány pro větší.
doLogDistribution = true; % pokud true, počet objektů vybrán náhodně v logaritmickém prostoru => vyzdvihuje menší počty objektů
backgroundSize = [224, 224]; % velikost výsledných obrázků (ŠÍŘKA,VÝŠKA)

%****** NORMALIZOVANÁ VELIKOST ******
doSizeNorm = true; % pokud 'true', změní rozměr rámečku všech objektů na předdefinovanou hodnotu "normalizedSize", poté augmentace
normalizedSize = normSizes(jj); % Pokud doSizeNorm == true, plocha rámečku vymezujícího objekt se normalizuje na X^2, až poté augmentace

%****** ROZMÍSTĚNÍ ******
options.maxOverlap = 0.05; % kolikatina objektu se smí překrývat s pozadím a ostatními objekty současně

%****** AUGMENTACE ******
% pozadí 
backgroundRealisticScale = true; % (POUZE PRO doSizeNorm = true). Pokud 'true' mění velikost pozadí vzhledem k normalizované velikosti objektů. Ignoruje proměnnou backgroundScaleGeneralRange.
backgroundRealisticObjectSize = 90; % (POUZE PRO doSizeNorm = true). Velikost objektu v pixelech, kterou by objekt zabíral na původním obrázku pozadí (měřítko = 1)
backgroundScaleGeneralRange = [0.25, 0.25]; % rozsah celkové změny rozměrů pozadí
backgroundScaleWidthRange = [1, 1.2]; % rozsah změny šířky pozadí před výřezem (násobek původní šířky)
backgroundScaleHeightRange = [1, 1.2]; % rozsah změny výšky pozadí před výřezem (násobek původní výšky)

% objektu
rotateAngleMax = 180; % maximální úhel natočení do každé strany
objectScaleGeneralRange = [0.9, 1.1]; % rozsah celkové změny rozměrů objektu
objectScaleWidthRange = [0.9, 1.0]; % rozsah změny šířky objektu (násobek původní šířky)
objectScaleHeightRange = [0.9, 1.0]; % rozsah změny výšky objektu (násobek původní výšky)

% pozadí i objektu
contrast = 0.2; % změna kontrastu  (rozumné do 0.3)
hue = 0.007; % výrazná změna barvy   (rozumné do 0.01)
saturation = 0.07; % změna saturace (rozumné do 0.1)
brightness = 0.07; % změna jasu     (rozumné do 0.1)

%****** PARAMETRY GENEROVÁNÍ ******
maxTries = 20; % maximum number of objects that failed placing into a background. Move to next image after that.
