% initializeExperiment.m
% Sets the proper global variables.

clc; clear all;

% Define operating system
% OS = 'Linux';
OS = 'Windows';

% Add necessary paths
addpath 'helpers'
addpath 'ETH-SURF-Linux'
addpath 'ETH-SURF-Windows'
addpath 'SURF'
addpath 'SIFT'
addpath 'RANSAC'
addpath 'color'
addpath 'isetUtility'
addpath 'data'
addpath 'data/query'
addpath 'data/database'

% Define data directories
queryDir = 'data/query/';
databaseDir = 'data/database/';
restoreDir = 'data/restore/';
queryGroundTruth = [queryDir 'groundTruth.txt'];

% Define feature extraction parameters
if strcmp(OS, 'Linux')
    SURFProg = 'ETH-SURF-Linux/surf.ln';
elseif strcmp(OS, 'Windows');
    SURFProg = 'ETH-SURF-Windows\Release\surfWINDLLDemo.exe';
end
SURFInputWidth = 640;
SURFInputHeight = 480;
SURFQueryBasicMAT = sprintf('data/queryBasic.mat');
SURFQueryEnhancedMAT = sprintf('data/queryEnhanced.mat');
SURFDatabaseBasicMAT = sprintf('data/databaseBasic.mat');
SURFDatabaseEnhancedMAT = sprintf('data/databaseEnhanced.mat');
SURFMatchBasicMAT = sprintf('data/matchBasic.mat');
SURFMatchEnhancedMAT = sprintf('data/matchEnhanced.mat');
SURFRestoreBasicMAT = sprintf('data/restoreBasic.mat');
SURFRestoreEnhancedMAT = sprintf('data/restoreEnhanced.mat');
SURFEnhanced = 0;
if SURFEnhanced
   SURFQueryMAT = SURFQueryEnhancedMAT;
   SURFDatabaseMAT = SURFDatabaseEnhancedMAT;
   SURFMatchMAT = SURFMatchEnhancedMAT;
   SURFRestoreMAT = SURFRestoreEnhancedMAT;
else
   SURFQueryMAT = SURFQueryBasicMAT;
   SURFDatabaseMAT = SURFDatabaseBasicMAT;
   SURFMatchMAT = SURFMatchBasicMAT;
   SURFRestoreMAT = SURFRestoreBasicMAT;
end