% alignment by sparse FRAME (generative bossting)


% Full List of folders of alignment tasks
%
% (1) maple
% (2) lion
% (3) flower
% (4) wolf
% (5) cougar
% (6) hummingbird
% (7) goose


function para = getParametersForExp(task_id)


if task_id==1
    %% parameters for task 1
    
    para.foldName = 'maple';
    
   
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 5;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 16;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 13;
    para.numResolutionShrink = 7;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
    
    
elseif task_id == 2
    
    para.foldName = 'lion';
    
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 5;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 5;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 8;
    para.numResolutionShrink = 0;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
    
elseif task_id == 3
    
    para.foldName = 'flower';
    
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 7;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 5;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 8;
    para.numResolutionShrink = 0;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
    
elseif task_id == 4
    
    para.foldName = 'wolf';
    
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 5;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 5;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 14;
    para.numResolutionShrink = 0;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
    
elseif task_id == 5
    
    para.foldName = 'cougar';
    
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 5;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 5;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 14;
    para.numResolutionShrink = 0;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
    
elseif task_id == 6
    
    para.foldName = 'hummingbird';
    
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 5;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 5;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 10;
    para.numResolutionShrink = 0;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
    
elseif task_id == 7
    
    para.foldName = 'goose';
    
    para.nPartCol = 5;
    para.nPartRow = 5;
    para.part_sx = 20;
    para.part_sy = 20;
    
    para.GaborScaleList = [1.4 1 0.7];
    para.DoGScaleList = [10];
    
    para.numWavelet = 250;   % default 300, 370
    para.numEMIteration = 5;
    para.isLocalNormalize = true;
    
    para.rotateShiftLimit = 5;   % template rotation  from -rotateShiftLimit to rotateShiftLimit, eg. (1)-2:2 if rotateShiftLimit=2 (2)0 is without rotation
    para.ratioDisplacementSUM2=0;   % default=0. Compute all values in SUM2 map
    
    para.locationShiftLimit=3;  % arg-max
    para.orientShiftLimit=1;    % arg-max
    
    para.numResolutionEnlarge = 6;
    para.numResolutionShrink = 0;
    para.scaleStepSize= 0.1; % you can tune this either 0.1 or 0.2  
    
    
    para.resizeByScalingFactor = true;% if true, resize all training images by resizeFactor, otherwise, resize them into the same size as the template size (sx, sy)
    
    % the following is optional. If isToUseNewFilterBankAtLastIteration=true,a new set of filter bank will be used to relearn the model in the last iteration for better visualization
    para.isToUseNewFilterBankAtLastIteration=true;
    para.GaborScaleListLastIteration=[ 1.4, 1, 0.7, 0.5];
    para.DoGScaleListLastIteration=[18.90, 13.36];
    para.isLocalNormalizeLastIteration=false;
    para.numWaveletLastIteration = 370;
    
   
end
