luis@189: function SMALLboxInit(varargin) luis@189: %% SMALLboxInit luis@189: % luis@189: % Will add all necessary files and folders to the Matlab Path luis@189: % luis@189: % SMALLbox initialisation luis@189: luis@189: % luis@189: % Centre for Digital Music, Queen Mary, University of London. luis@189: % This file copyright 2009 Ivan Damnjanovic, Matthew Davies. luis@189: % luis@189: % This program is free software; you can redistribute it and/or luis@189: % modify it under the terms of the GNU General Public License as luis@189: % published by the Free Software Foundation; either version 2 of the luis@189: % License, or (at your option) any later version. See the file luis@189: % COPYING included with this distribution for more information. luis@189: % luis@189: %% luis@189: clc; luis@189: clear; luis@189: luis@189: FS=filesep; luis@189: luis@189: SMALL_path=pwd; luis@189: SMALL_p=genpath(SMALL_path); luis@189: addpath(SMALL_p); luis@189: luis@189: luis@189: % should init "old" toolboxes luis@189: luis@189: luis@189: luis@189: luis@189: luis@189: %% luis@189: luis@189: luis@189: % if ~exist('sparcoSetup.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising SPARCO and Rice Wavelet Toolbox Setup'); luis@189: % luis@189: % Sparco_path = [SMALL_path,FS,'toolboxes',FS,'SPARCO']; luis@189: % if exist([Sparco_path, FS, 'sparco-1.2.zip'],'file'), luis@189: % Sparco_zip=[Sparco_path, FS, 'sparco-1.2.zip']; luis@189: % else luis@189: % Sparco_zip='http://www.cs.ubc.ca/labs/scl/sparco/downloads.php?filename=sparco-1.2.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(Sparco_zip,Sparco_path); luis@189: % Sparco_p=genpath(Sparco_path); luis@189: % addpath(Sparco_p); luis@189: % cd(SMALL_path) luis@189: % luis@189: % luis@189: % luis@189: % if exist('curvelab.pdf','file') luis@189: % crvroot = fileparts(which('curvelab.pdf')); luis@189: % addtopath(crvroot,'fdct_usfft_matlab'); luis@189: % addtopath(crvroot,'fdct_wrapping_matlab'); luis@189: % addtopath(crvroot,'fdct_wrapping_cpp/mex'); luis@189: % addtopath(crvroot,'fdct3d/mex'); luis@189: % else luis@189: % fprintf(['\nWarning: CurveLab is not in the path. Sparco Problems 50-51 ' ... luis@189: % 'will not work.\n\n']); luis@189: % end luis@189: % luis@189: % luis@189: % cd(SMALL_path); luis@189: % luis@189: % fprintf('SPARCO Installation Successful!\n'); luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n SPARCO and Rice Wavelet Toolbox are already installed'); luis@189: % end luis@189: % %% luis@189: % %removing Rice Wavelet tollbox provided with SPARCO from the path, so luis@189: % %the newer version provided with SMALLbox is used luis@189: % luis@189: % rmpath([SMALL_path,FS,'toolboxes',FS,'SPARCO',FS,'sparco-1.2',FS,'tools',FS,'rwt']); luis@189: % luis@189: % if ~exist('spgsetup.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising SPGL1 Setup'); luis@189: % luis@189: % try luis@189: % SPGL1_path = [SMALL_path,FS,'toolboxes',FS,'SPGL1']; luis@189: % if exist([SPGL1_path, FS, 'spgl1-1.7.zip'],'file'), luis@189: % SPGL1_zip=[SPGL1_path, FS, 'spgl1-1.7.zip']; luis@189: % else luis@189: % SPGL1_zip='http://www.cs.ubc.ca/~mpf/downloads/spgl1-1.7.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(SPGL1_zip,SPGL1_path); luis@189: % SPGL1_p=genpath(SPGL1_path); luis@189: % addpath(SPGL1_p); luis@189: % luis@189: % luis@189: % cd([SPGL1_path,FS,'spgl1-1.7']); luis@189: % fprintf('Compiling SPGL1 MEX interfaces ...'); luis@189: % try luis@189: % spgsetup; luis@189: % fprintf('\n SPGL1 Installation Successful!\n'); luis@189: % catch luis@189: % warning('Could not compile SPGL1 MEX interfaces.'); luis@189: % end luis@189: % catch luis@189: % fprintf('\n SPGL1 Installation Failed\n'); luis@189: % end luis@189: % cd(SMALL_path); luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n SPGL1 is already installed'); luis@189: % end luis@189: % %% luis@189: % luis@189: % if ~exist('SparsePath.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising SparseLab Setup'); luis@189: % luis@189: % try luis@189: % SL_path = [pwd,FS,'toolboxes',FS,'SparseLab']; luis@189: % if exist([SL_path, FS, 'SparseLab21-Core.zip'],'file'), luis@189: % SL_zip=[SL_path, FS, 'SparseLab21-Core.zip']; luis@189: % else luis@189: % SL_zip='http://sparselab.stanford.edu/SparseLab_files/Download_files/SparseLab21-Core.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(SL_zip,SL_path); luis@189: % SL_p=genpath(SL_path); luis@189: % addpath(SL_p); luis@189: % fprintf('\n SparseLab Installation Successful!\n'); luis@189: % catch luis@189: % fprintf('\n SparseLab Installation Failed\n'); luis@189: % cd(SMALL_path); luis@189: % end luis@189: % cd(SMALL_path); luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n SparseLab is already installed'); luis@189: % end luis@189: % %% luis@189: % luis@189: % if ~exist('greed_pcgp.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising Sparsify Setup'); luis@189: % luis@189: % try luis@189: % Sparsify_path = [pwd,FS,'toolboxes',FS,'Sparsify']; luis@189: % if exist([Sparsify_path, FS, 'sparsify_0_4.zip'],'file'), luis@189: % Sparsify_zip=[Sparsify_path, FS, 'sparsify_0_4.zip']; luis@189: % else luis@189: % Sparsify_zip='http://www.see.ed.ac.uk/~tblumens/sparsify/sparsify_0_4.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(Sparsify_zip,Sparsify_path); luis@189: % Sparsify_p=genpath(Sparsify_path); luis@189: % addpath(Sparsify_p); luis@189: % fprintf('\n Sparsify Installation Successful\n'); luis@189: % catch luis@189: % fprintf('\n Sparsify Installation Failed\n'); luis@189: % end luis@189: % cd(SMALL_path); luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Sparsify is already installed'); luis@189: % end luis@189: % %% luis@189: % if ~exist('GPSR_Basic.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising GPSR Setup'); luis@189: % luis@189: % try luis@189: % GPSR_path = [pwd,FS,'toolboxes',FS,'GPSR']; luis@189: % if exist([GPSR_path, FS, 'GPSR_6.0.zip'],'file'), luis@189: % GPSR_zip=[GPSR_path, FS,'GPSR_6.0.zip']; luis@189: % else luis@189: % GPSR_zip='http://www.lx.it.pt/~mtf/GPSR/GPSR_6.0.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(GPSR_zip,GPSR_path); luis@189: % luis@189: % GPSR_p=genpath(GPSR_path); luis@189: % addpath(GPSR_p); luis@189: % fprintf('\n GPSR Installation Successful\n'); luis@189: % catch luis@189: % fprintf('\n GPSR Installation Failed'); luis@189: % end luis@189: % cd(SMALL_path); luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n GPSR is already installed'); luis@189: % end luis@189: % %% luis@189: % if ~exist('cvx_setup.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising CVX Setup'); luis@189: % luis@189: % try luis@189: % CVX_path = [pwd,FS,'toolboxes',FS,'CVX']; luis@189: % machine=computer; luis@189: % if (strcmp(machine,'PCWIN')||strcmp(machine,'PCWIN64')) luis@189: % if exist([CVX_path, FS, 'cvx.zip'],'file'), luis@189: % CVX_zip=[CVX_path, FS,'cvx.zip']; luis@189: % else luis@189: % CVX_zip='http://cvxr.com/cvx/cvx.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(CVX_zip,CVX_path); luis@189: % else luis@189: % if exist([CVX_path, FS, 'cvx.tar.gz'],'file'), luis@189: % CVX_tar=[CVX_path, FS,'cvx.tar.gz']; luis@189: % else luis@189: % CVX_tar='http://cvxr.com/cvx/cvx.tar.gz'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % untar(CVX_tar,CVX_path); luis@189: % end luis@189: % cd([CVX_path,FS,'cvx']); luis@189: % fprintf('\n\n Running cvx_setup.m script \n\n'); luis@189: % cvx_setup; luis@189: % fprintf('\n\n Ignore the cvx_setup note about adding the path. It is done automatically in SMALLbox \n\n'); luis@189: % CVX_p=genpath(CVX_path); luis@189: % addpath(CVX_p); luis@189: % fprintf('\n CVX Installation Successful\n'); luis@189: % catch luis@189: % fprintf('\n CVX Installation Failed'); luis@189: % end luis@189: % cd(SMALL_path); luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n CVX is already installed'); luis@189: % end luis@189: % luis@189: % %% luis@189: % %% KSVD utils setup luis@189: % luis@189: % if ~(exist('addtocols')==3) luis@189: % cd([SMALL_path,FS,'util',FS,'ksvd utils']); luis@189: % make luis@189: % cd(SMALL_path); luis@189: % end luis@189: % luis@189: % %% fast omp for Gabor dictionary luis@189: % luis@189: % if ~(exist('omp2Gabor')==3) luis@189: % cd([SMALL_path,FS,'solvers', FS,'SMALL_ompGabor']); luis@189: % make luis@189: % cd(SMALL_path); luis@189: % end luis@189: % %% luis@189: % if ~exist('ksvdver.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising OMPbox and KSVDBox Setup'); luis@189: % luis@189: % try luis@189: % KSVD_path = [pwd,FS,'toolboxes',FS,'KSVD']; luis@189: % if exist([KSVD_path, FS, 'ompbox10.zip'],'file'), luis@189: % omp_zip=[KSVD_path, FS, 'ompbox10.zip']; luis@189: % else luis@189: % omp_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ompbox10.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(omp_zip,[KSVD_path, FS, 'ompbox']); luis@189: % luis@189: % cd([KSVD_path, FS, 'ompbox', FS, 'private']); luis@189: % make; luis@189: % cd(SMALL_path); luis@189: % luis@189: % if exist([KSVD_path, FS, 'ksvdbox13.zip'],'file'), luis@189: % KSVD_zip=[KSVD_path, FS, 'ksvdbox13.zip']; luis@189: % else luis@189: % KSVD_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ksvdbox13.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(KSVD_zip,[KSVD_path, FS, 'ksvdbox']); luis@189: % cd([KSVD_path, FS, 'ksvdbox', FS, 'private']); luis@189: % make; luis@189: % cd(SMALL_path); luis@189: % KSVD_p=genpath(KSVD_path); luis@189: % addpath(KSVD_p); luis@189: % fprintf('\n KSVDBox and OMPBox Installation Successful\n'); luis@189: % catch luis@189: % fprintf('\n KSVDBox and OMPBox Installation Failed'); luis@189: % cd(SMALL_path); luis@189: % end luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n KSVD is already installed'); luis@189: % end luis@189: % %% luis@189: % if ~exist('ksvdsver.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising OMPSbox and KSVDSBox Setup'); luis@189: % luis@189: % try luis@189: % KSVDS_path = [pwd,FS,'toolboxes',FS,'KSVDS']; luis@189: % if exist([KSVDS_path, FS, 'ompsbox1.zip'],'file'), luis@189: % omps_zip=[KSVDS_path, FS, 'ompsbox1.zip']; luis@189: % else luis@189: % omps_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ompsbox1.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(omps_zip,[KSVDS_path, FS, 'ompsbox']); luis@189: % luis@189: % cd([KSVDS_path, FS, 'ompsbox', FS, 'private']); luis@189: % make; luis@189: % cd(SMALL_path); luis@189: % luis@189: % if exist([KSVDS_path, FS, 'ksvdsbox11.zip'],'file'), luis@189: % KSVDS_zip=[KSVDS_path, FS, 'ksvdsbox11.zip']; luis@189: % else luis@189: % KSVDS_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ksvdsbox11.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(KSVDS_zip,[KSVDS_path, FS, 'ksvdsbox']); luis@189: % cd([KSVDS_path, FS, 'ksvdsbox', FS, 'private']); luis@189: % make; luis@189: % cd(SMALL_path); luis@189: % KSVDS_p=genpath(KSVDS_path); luis@189: % addpath(KSVDS_p); luis@189: % fprintf('\n KSVDSbox and OMPSbox Installation Successful\n'); luis@189: % catch luis@189: % fprintf('\n KSVDSbox and OMPSbox Installation Failed'); luis@189: % cd(SMALL_path); luis@189: % end luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n KSVDS is already installed'); luis@189: % end luis@189: % %% luis@189: % luis@189: % if ~exist('mexTrainDL.m','file') luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n If you want to use SMALLbox with SPAMS On-line Dictionary Learning please go to:'); luis@189: % fprintf('\n http://www.di.ens.fr/willow/SPAMS/index.html'); luis@189: % fprintf('\n and follow the instructions. The License prohibits redistribution of the SPAMS.'); luis@189: % luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n SPAMS On-line Dictionary Learning is already installed'); luis@189: % end; luis@189: % %% luis@189: % luis@189: % luis@189: % if ~exist('midiInfo.m','file') luis@189: % try luis@189: % matlab_midi_path = [pwd,FS,'util',FS,'matlab_midi']; luis@189: % if exist([matlab_midi_path, FS, 'matlab_midi.zip'],'file'), luis@189: % matlab_midi_zip=[SL_path, FS, 'matlab_midi.zip']; luis@189: % else luis@189: % matlab_midi_zip='http://www.kenschutte.com/static/code/matlab_midi.zip'; luis@189: % fprintf('\n\n Downloading toolbox, please be patient\n\n'); luis@189: % end luis@189: % unzip(matlab_midi_zip,matlab_midi_path); luis@189: % matlab_midi_p=genpath(matlab_midi_path); luis@189: % addpath(matlab_midi_p); luis@189: % fprintf('\n matlab_midi (http://www.kenschutte.com/midi/) Installation Successful!\n'); luis@189: % catch luis@189: % fprintf('\n matlab_midi (http://www.kenschutte.com/midi/) Installation Failed\n'); luis@189: % cd(SMALL_path); luis@189: % end luis@189: % luis@189: % else luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n matlab_midi (http://www.kenschutte.com/midi/) is already installed'); luis@189: % end luis@189: % luis@189: % luis@189: % luis@189: % %% RWT setup luis@189: % if ~(exist('mdwt')==3) luis@189: % cd([SMALL_path, FS, 'util', FS, 'Rice Wavelet Toolbox']) luis@189: % fprintf('Compiling the Rice Wavelet Toolbox MEX interfaces...'); luis@189: % try luis@189: % if exist('mdwt' ,'file')~=3, mex mdwt.c; end luis@189: % if exist('midwt' ,'file')~=3, mex midwt.c; end luis@189: % if exist('mrdwt' ,'file')~=3, mex mrdwt.c; end luis@189: % if exist('mirdwt','file')~=3, mex mirdwt.c; end luis@189: % fprintf('Rice Wavelet Toolbox Installation Successful!\n\n'); luis@189: % catch luis@189: % warning('Could not compile Rice Wavelet Toolbox MEX interfaces.\n'); luis@189: % end luis@189: % cd(SMALL_path); luis@189: % end luis@189: % %% luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n Initialising SMALLbox Examples Setup'); luis@189: % luis@189: % % % Need to do a bit of temporary housekeeping first. luis@189: % % cd(SMALL_path); luis@189: % % try luis@189: % % cd(['Problems',FS,'private']); luis@189: % % if exist('addtocols' ,'file')~=3, luis@189: % % fprintf('\n Compiling MEX interfaces for SMALL examples \n'); luis@189: % % make; luis@189: % % end luis@189: % % fprintf('\n SMALLbox Problems Installation Successful! \n'); luis@189: % % catch luis@189: % % fprintf('\n SMALLbox Problems Installation Failed \n'); luis@189: % % end luis@189: % % cd(SMALL_path); luis@189: % luis@189: % luis@189: % luis@189: % fprintf('\n ******************************************************************'); luis@189: % fprintf('\n\n SMALLbox Installation Complete!'); luis@189: % luis@189: % luis@189: % fprintf('\n\n For more information on the installed toolboxes see'); luis@189: % fprintf('\n\n Sparco: http://www.cs.ubc.ca/labs/scl/sparco/'); luis@189: % fprintf('\n\n SPGL1: http://www.cs.ubc.ca/labs/spgl1/?n=HomePage'); luis@189: % fprintf('\n\n SparseLab: http://sparselab.stanford.edu/ (PLEASE REGISTER SPARSELAB!)'); luis@189: % fprintf('\n\n Sparsify: http://www.see.ed.ac.uk/~tblumens/sparsify/sparsify.html'); luis@189: % fprintf('\n\n GPSR: http://www.lx.it.pt/~mtf/GPSR/'); luis@189: % fprintf('\n\n CVX: http://cvxr.com/cvx/'); luis@189: % fprintf('\n\n OMPbox and KSVDBox: http://www.cs.technion.ac.il/~ronrubin/\n'); luis@189: % luis@189: % luis@189: % % LIST DEMOS FROM EXAMPLE DIRECTORY... luis@189: % luis@189: % demo_ack = input('\n\n Would you like to run a demo: ([y]/n)? ','s'); luis@189: % luis@189: % if demo_ack == 'n', luis@189: % fprintf('\n Thank you for installing SMALLbox.'); luis@189: % fprintf('\n For information on the SMALLbox example scripts'); luis@189: % fprintf('\n Please see the examples directory. \n'); luis@189: % return; luis@189: % else luis@189: % luis@189: % demo_choice = input('\n 1 to run SMALL_solver_test \n 2 to run Dictionary Learning for Image Denoising demo \n q to quit: ','s'); luis@189: % switch(demo_choice) luis@189: % case{'1'} luis@189: % fprintf('\n Running SMALL_solver_test problem'); luis@189: % SMALL_solver_test; luis@189: % case{'2'} luis@189: % fprintf('\n Running SMALL Image Denoise problem'); luis@189: % SMALL_ImgDenoise_DL_test_KSVDvsSPAMS; luis@189: % otherwise luis@189: % return; luis@189: % end luis@189: % luis@189: % end luis@189: % luis@189: luis@189: